Инструменты пользователя

Инструменты сайта


Боковая панель

Связь

klass_multimap

Класс multimap

Модифицированный вариант map, в котором отсутствует требования уникальности ключа - то есть, если произвести поиск по ключу, то вернется не одно значение, а набор значений, сохраненных с данным ключом.

Класс multimap поддерживает поддерживает ассоциативный контейнер, в котором неуникальным (в общем случае) ключам соответствуют определённые значения. Спецификация его шаблона имеет следующий вид:

template <class Key, class T, class Comp = less<key>,
class Allocator =Alloctor<pair<const key, T>>>
class multimap

Здесь key - тип данных ключей,T - тип сохраняемых (отображемых)значений, а Comp - функция, которая сравнивает два ключа. Класс multimap имеет следующие конструкторы:

explicit multimap(const Comp &cmpfn = Comp(),Allocator &a = Allocator());

multimap(multimap<Key, T, Comp,Allocator> &ob);

template < class InIter> multimap(InIter start, InIter end,const Comp &cmpfn = Comp(),
 const Allocator &a = Allocator());

Первая форма конструктора создает пустое мультиотображение. Вторая создает мультиотображение, которое содержит те же элементы, что и мультиотображение ob. Третья создает мультиотображение, которое содержит элементы в диапазоне, заданном параметрами start и end. Функция, заданная параметром cmpfn (и если она задана), определяет упорядочение мультиотображения.

Для класса multimap определены следующие операторы сравнения:

== < ⇐ !=


=

Класс multimap содержит перечисленные ниже функции-члены. В приведенных описаниях элемент key_type представляет тип ключа, а элемент value_type - пару элементов pair<Key, T>.


iterator begin();

const_iterator begin() const;

Возвращает итератор для первого элемента в мультиотображении.


void clear();

Удаляет все элементы из мультиотображения.


size_type count(const key_type &k) const;

Возвращает число вхождений ключа k в мультиотображении (1 или 0).


bool empty() const;

Возвращает значение true, если данное мультиотображение пустое, и false в противном случае.


const_iterator end() const;

iterator end();

Возвращает итератор, указывающий на конец мультиотображения.


pair<iterator, iterator> equal_range(const key_type &k);

pair<const_iterator, const_iterator> equal_range(const key_type &k) const;

Возвращает пару итераторов, которые указывают на первый и последний элементы в мультиотображении, содержащие заданный ключ.


void erase(iterator i);

Удаляет элемент, адресуемый итератором i.


void erase(iterator start, iterator end);

Удаляет элементы в диапазоне, задаваемом параметрами start и end.


size_type erase(const key_type &k);

Удаляет из мультиотображения элементы, ключи которых имеют значение k.


iterator find(const key_type &k);

const_iterator find(const key_type &k) const;

Возвращает итератор для заданного ключа. Если ключ не обнаружен, возвращает итератор до конца мультиотображения.


allocator_type get_allocator() const;

Возвращает распределитель мультиотображения.


iterator insert(iterator i, const value_type &val);

Вставляет значение val после элемента, заданным итератором i, возвращает итератор для этого элемента.


template <class InIter> void insert(InIter start, InIter end);

Вставляет элементы заданного диапазона.


pair<iterator, bool> insert(const value_type &val);

Вставляет значение val в используемое мультиотображение. Возвращает итератор для данного мультиотображения. Элемент вставляет только в том случае, если его еще нет в мультиотображении. Если элемент был вставлен возвращает пару pair<iterator, true>, в противном случае pair<iterator, false>


key_compare key_comp() const;

Возвращает объект-функцию, которая сравнивает ключи.


iterator lower_bound(const key_type &k);

const_iterator lower_bound(const key_type &k) const;

Возвращает итератор для первого элемента в мультиотображении, ключ которого равен значению k или больше этого значения.


size_type max_size() const;

Возвращает максимальное число элементов, которое может содержать мультиотображение.


reference operator[](const key_type &i);

Возвращает ссылку на элемент, заданный параметром i. Если этого элемента не существует, вставляет его в мультиотображение.


reverse_iterator rbegin();

const_reverse_iterator rbegin() const;

Возвращает реверсивный итератор для конца мультиотображения.


reverse_iterator rend();

const_reverse_iterator rend() const;

Возвращает реверсивный итератор для начала мультиотображения.


size_type size() const;

Возвращает текущее количество элементов в мультиотображении.


void swap(multimap<Key, T, Comp, Allocator> &ob);

Выполняет обмен элементами данного мультиотображения и мультиотображения ob.


iterator upper_bound(const key_type &k);

const_iterator upper_bound(const key_type &k) const;

Возвращает итератор для первого элемента в мультиотображении, ключ которого больше заданного значения k.


value_compare value_comp() const;

Возвращает объект-функцию, которая сравнивает значения.




klass_multimap.txt · Последние изменения: 2011/02/21 12:40 (внешнее изменение)