Справочник по C/C++
set

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

template <class Key, class Comp = less<Key>,
class Allocator = allocator<Key>> class set

Здесь Key - тип данных ключей, a Comp - функция, которая сравнивает два ключа. Класс set имеет следующие конструкторы.

explicit set(const Comp &cmpfn = Comp(), const Allocator &a = Allocator));
set(const set<Key, Comp, Allocator> &ob);
template <class InIter> setdnlter start, InIter end,
const Comp &cmpfn = Comp(), const Allocator &a = Allocator());

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

Для класса set определены следующие операторы сравнения: ==, <, <=, !=, > и >=.

Класс multiset содержит перечисленные ниже функции-члены.

Функция-член Назначение
iterator begin();
const_iterator begin() const;
Возвращает итератор для первого элемента в множестве
void clear(); Удаляет все элементы из множества
size_type count(const key_type &k) const; Возвращает число вхождений значения k в множестве
bool empty() const; Возвращает true, если данное множество пустое, и false в противном случае
iterator end();
const_iterator end() const;
Возвращает итератор для конца множества
pair<iterator, 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); Возвращает итератор для заданного ключа. Если этот ключ не обнаружен, возвращает итератор для конца множества
allocator_type get_allocator() const; Возвращает распределитель множества
iterator insert(iterator i, const value_type &val); Вставляет значение val в позиции или после элемента, заданного итератором i. Элементы-дубликаты не вставляет. Возвращает итератор для этого элемента
template <class InIter> void insert(InIter start, Inlter 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; Возвращает итератор для первого элемента в множестве, ключ которого равен значению k или больше этого значения
size_type max_size() const; Возвращает максимальное число элементов, которое может содержать данное множество
reverse_iterator rbegin();
const_reverse_iterator rbegin() const;
Возвращает реверсивный итератор для конца множества
reverse_iterator rend();
const_reverse_iterator rend() const;
Возвращает реверсивный итератор для начала множества
size_type size() const; Возвращает текущее число элементов в множестве
void swap(set<Key, T, Comp, Allocator> &ob); Выполняет обмен элементами данного множества и множества ob
iterator upper_bound(const key_type &k) const; Возвращает итератор для первого элемента в множестве, ключ которого больше заданного значения k
value_compare value_comp() const; Возвращает объект-функцию, которая сравнивает значения



Реклама