Программирование >>  Операторы преобразования типа 

1 ... 69 70 71 [ 72 ] 73 74 75 ... 239


Решение с использованием вектора:

II cont/sortvec.cpp #1nclude <iostream> finclude <stnng> Iinclude <algor1thm> Iinclude <vector> using namespace std:

Int mainC) {

/* Создание строкового вектора

* - инициализация словами, прочитанными из стандартного ввода */

vector<string> col 1((istream 1terator<string>Ccin)).

f1stream 1terator<str1ng>C)));

Сортировка элементов

sort (coll.beginO, coll.endO):

Вывод всех элементов с подавлением дубликатов unique copy (coll.beginO. coll.endO,

ostream 1terator<str1ng>(cout. \n )):

Когда автор запустил обе программы в своей системе для тестового набора из 150 ООО строк, векторная версия работала примерно иа 10 % быстрее. Включение вызова reserveO ускорило ее еще на 5 %. Если разрешить наличие дубликатов (использование типа multiset вместо set и вызов сору() вместо unique copy()), ситуация кардинально меняется: векториая версия работает еще на 40 % быстрее! Такие показатели нельзя считать типичными, однако они доказывают, что во многих случаях стоит опробовать разные варианты обработки элементов.

На практике иногда бывает трудно предсказать, какой тип контейнера лучше подходит для конкретной задачи. Одно из больших достоинств STL заключается в том, что вы можете относительно легко опробовать разные варианты. Основная работа - реализация структур данных и алгоритмов - уже выполнена. Вам остается лишь скомбинировать ее результаты оптимальным образом.

Гипы и функции контейнеров

В настоящем разделе подробно описаны различные контейнеры STL и все поддерживаемые ими операции. Типы и операции сгруппированы по функцио-нальпости. Для каждых типа и операции приводятся сигнатура, краткое описание и типы контейнеров, в которых они поддерживаются. Под обозначением контейнер понимается тип контейнера (вектор, дек, список, лшожество, мультимножество, отображение, мультиотображение или строка).



Определения типов

контейнер: :value type О Тип элементов.

О Для множеств и мультимножеств - константный тип. О Для отображений и мультиотображений - тип:

pair <const тип нлючз. тип значения>

О Поддерживается векторами, деками, списками, множествами, мультимножествами, отображениями, мультиотображениями, строками.

контейнер: :reference

О Тип ссылки на элемент. О В общем случае:

контейнер::value type& О Для vector<bool> - вспомогательный класс (см. с. 167).

О Поддерживается векторами, деками, списками, множествами, мультимножествами, отображениями, мультиотображениями, строками.

контейнер::const reference

О Тип коистантпой ссылки на элемент. О В общем случае:

const яомгеиер;:value type&

О Для vector<bool> - тип bool.

О Поддерживается векторами, деками, списками, множествами, мультимножествами, отображениями, мультиотображениями, строками.

контейнер::iterator

О Тип итератора.

О Поддерживается векторами, деками, списками, множествами, мультимножествами, отображениями, мультиотображениями, строками.

контейнер::const iterator

О Тип константного итератора.

О Поддерживается векторами, деками, списками, множествами, мультимножествами, отображениями, мультиотображениями, строками.

контейнер: :reverse iterator

О Тип обратного итератора.

О Поддерживается векторами, деками, списками, множествами, мультимножествами, отображениями, мультиотображениями.



нонтейнер::const reverse 1terator

О Тип константного обратного итератора.

О Поддерживается векторами, деками, списками, множествами, мультимножествами, отображениями, мультиотображениями.

контейнер::si ze type

О Беззнаковый целый тип для значений размера.

О Поддерживается векторами, деками, списками, множествами, мультимножествами, отображениями, мультиотображениями, строками.

контейнер::d1fference type

О Знаковый целый тип для значений разности.

О Поддерживается векторами, деками, списками, множествами, мультимножествами, отображениями, мультиотображениями, строками.

контейнер:;key type

О Тип ключа элементов в ассоциативных контейнерах.

О Поддерживается множествами, мультимножествами, отображениями, мультиотображениями.

контейнер::mapped type

О Тип значения элементов ассоциативных контейнеров.

О Поддерживается отображениями и мультиотображениями.

контейнер::key compare

О Тип критерия сравнения в ассоциативных контейнерах.

О Поддерживается множествами, мультимножествами, отображениями, мультиотображениями.

контейнер::value compare

О Тип критерия сравнения для типа всего элемента.

О Для множеств и мультимножеств - эквивалент key compare.

О Для отображений и мультиотображений - вспомогательный класс для критерия сравнения, при котором сравниваются только ключевые части двух элементов.

О Поддерживается множествами, му.1Ьтимножествами, отображениями, мультиотображениями.

контейнер: .allocator type

О Тип распределителя.

О Поддерживается векторами, деками, списками, множествами, мультимножествами, отображениями, мультиотображениями, строками.



1 ... 69 70 71 [ 72 ] 73 74 75 ... 239

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика