![]() |
|
Программирование >> Расширенная версия языка c++
если она присутствует, задает порядок сортировки элементов ассоциативного списка. Ка мило, для любого объекта, заданного в качестве ключа, должны быть определены конструктор по умолчанию и несколько операторов сравнения. Для класса тар определяются следующие операторы сравнения: = = <=, !=, >, >= .)<;?.: и В табл. 14.4 представлены функции - члены класса тар. В данной таблице тип key type - это тип ключа, а key value - тип пары ключ/значение (тип pair<Key,T>). Таблица 14.4. Функции - члены класса тар Функция-член Описание iterator begin(); constjterator begin() const; void clear(); size type count (const key type &k) const; const; iterator const iterator const; pair<iterator, lterator> eqiial range (const key type &к\\ pair<const iterator, const Iterator> equal range(const key tYpe &k) const; void erase(iterator void erase(iterator начало, iterator конец); sizejype erase (const key type &k]; iterator find (const key type constjterator find (const key type &k) const; allocator.type get allocator() const; Возвращает итератор первого элемента ассоциативного списка Удаляет все элементы ассоциативного списка Возвращает 1 или 0, в зависимости от того, встречается или нет в ассоциативном списке ключ k Возвращает истину, если вызывающий ассоциативный список пуст, в противном случае возвращает ложь Возвращает итератор списка конца ассоциативного Возвращает пару итераторов, которые указывают на первый и последний элементы ассоциативного списка, содержащего указанный ключ k элемент, на который указывает итератор / Удаляет элементы, заданные между итераторами начало и конец Удаляет элементы, нию ключа k соответствующие значе- Возвращает итератор по заданному ключу к. Если ключ не обнаружен, возвращает итератор конца ассоциативного списка Возвращает распределитель памяти ассоциативного списка Таблица 14.4 (продолжение) Функция-член Описание iterator lnsert<iterator i, const value type значение); tempiate<class lnlter> void Ensert(lnlter начало, Inlter конец); ,pa[r<iterator, bool>insert (const value type Азначение); const; iterator (const keyjype &k); const iterator lower bound (const key type &k) const; size type max size() const; reference operator[] (const key type &/); reverse iterator rbegin(); const reverse Iterator rbegin() const; reversejterator rend(); const reverse lterator rend() const; size type size() const; void swap(map<Key, T, Comp, Allocator> ЛобьвктУ;. iterator upper bound (const key type &к); constiterator upper bound (const key type &k] const; valuecompare value comp() const; Вставляет параметр значение на место элемента или после элемента, заданного итератором / Возвращает итератор этого элемента Вставляет последовательность элементов, заданную итераторами начало и конец Вставляет значение в вызывающий ассоциативный список. Возвращает итератор вставленного элемента. Элемент вставляется только в случае, если такого в ассоциативном списке еще нет. При удачной вставке элемента функция возвращает значение pair<iterator, true>, в противном случае - palr<iterator, false> сравнения ключей Возвращает итератор первого элемента ассоциативного списка, ключ которого равен или больше заданного ключа k ... Возвращает максимальное число элементов, которое можно хранить в ассоциативном списке Возвращает ссылку на элемент, соответствующий ключу (. Если такого элемента не существует, он вставляется в ассоциативный список Возвращает обратный итератор конца ассоциативного списка Возвращает обратный итератор начала ассоциативного списка Возвращает хранящееся на данный момент в ассоциативном списке число элементов Обменивает элементы из вызывающего ассоциативного списка с элементами из объекта объект Возвращает итератор первого элемента ассоциативного списка, ключ которого больше заданного ключа k Возвращает объект-функцию сравнения значений ![]() В следующей программе на примере ассоциативного списка, предназначенного для хранения десяти пар ключ/значение, иллюстрируются основы использования ассоциативных списков. Ключом здесь является символ, а значением - целое. Пары ключ/значение хранятся следующим образом: в 1 ... . ч I .; . . Поскольку пары хранятся именно таким образом, то, когда пользователь набирает на клавиатуре ключ (т. е. одну из букв от А до J), программа выводит на экран соответствующее этому ключу значение. В ассоциативном списке хранятся пары ключ/значение в виде объектов типа pair. Шаблон объекта типа pair имеет следующую спецификацию: template<class Ktypm, clas урв> struct pair { , , .. . typedef Ktyp №Й тип; тип ключа typedef type второй тип; тип значения Ktype первый; содержит ключ Vtyp* второй; содержит значение конструкторы pair () ; pair (const Ktypk, const Vtype fiv) ; tei45late<class A, class B> pair (const<A, B> &о6ъехт) : Ранее уже говорилось, что значение переменной первый содержит ключ и значение, а значение переменной второй - значение, соответствующее этому ключу. Создавать пары ьслюч/значение можно не только с помощью конструкторов ьсласса pair, но и с помощью функции make pair(), которая создает объекты типа pair, используя типы данных в качестве параметров. Функция ]nake pair() - это родовая функция со следующим прототипом: tenplat&Cclass Ktype, class Vtipe> pair<iCtjT>e, VtK3e>make pair (const Ktype fit, const Vtype fiv) ; Как видите, функция возвращает объект типа pair, содержащий заданные в качестве параметров функции значения типов Ktype и Vtype. Преимущество использования функции make pair() состоит в том, что она дает возможность компилятору автоматически распознавать типы предназначенных для хранения объектов, и вам не нужно указывать их явно.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |