Поделиться через


set Class

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

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

Параметры

  • Key
    Тип данных элемента, который необходимо сохранить в наборе.

  • Traits
    Тип, который предоставляет объект функции, который может сравнить 2 значений элементов как ключи сортировки для определения их относительного порядка в наборе.Этот аргумент является необязательным и предикат less бинарный <Key> значение по умолчанию.

  • Allocator
    Тип, представляющий сохраненные объект выделения, инкапсулирующий сведения о выделении памяти и освобождение набора.Этот аргумент является необязательным и значение по умолчанию allocator*<Key>.*

Заметки

Набор STL:

  • Ассоциативный контейнер, который контейнер переменный размер, который поддерживает - это фактическое получение значений элементов на основе связанном значению ключа.Кроме того, это простой ассоциативный контейнер, поскольку его значения элемента его значений ключей.

  • Reversible, поскольку он обеспечивает двунаправленный итератор, чтобы получить доступ к его элементы.

  • Отсортированы, поскольку его элементы упорядочены по значениям ключей в контейнере в соответствии с указанной функцией сравнения.

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

Набор также описывается, как класс шаблона, поскольку она обеспечивает функциональные возможности родова и не зависит от конкретного типа данных, содержащихся как элементы.Тип данных следует использовать вместо, определенный как параметр в шаблоне класса вместе с функцией и распределитель сравнения.

Выбор типа контейнера должен быть основан на типе обычно поиск и вставку, необходимые приложению.Ассоциативные контейнеры оптимизированные для операций уточняющего запроса, вставки и удаления.Функции-члены, которые явно поддерживают эти операции эффективны, выполняя их во времени, на среднем пропорциональном к логарифму количество элементов в контейнере.Вставка элементов объявляет никаких итераторы и удаление элементов делает недействительным только те итераторы, которые специально указали на удаленных элементов.

Набор должен быть ассоциативным контейнером выбора, когда условия связывание значений с своими ключами содержимое приложением.Элементы набора уникальным и файлов в качестве их собственных ключей сортировки.Модель для данного типа структуры упорядоченный список, указывает слова в которых слова могут указываться только один раз.Если несколько вхождений слова были разрешены, то мультинабора будет соответствующей структурой контейнера.Если значения должны быть вложенным в список слов уникального ключа, то сопоставление будет соответствующей структуры для хранения этих данных.Если вместо ключи не уникальны, multimap является контейнером выбора.

Набор упорядочивает последовательность он контролирует, вызвав, хранящихся объект функции типа key_compare.Этот сохраненный объект, функция сравнения, которая может обращаться путем вызова функции-члена key_comp.Как правило, элементы должны быть просто меньше эквивалентно задать таким образом, чтобы этот порядок с учетом любых 2 элемента он может быть определен этому, что они эквивалентны (в том смысле, что ни одно из значений не меньше другого) или что один меньше другого.Это приводит к тому, что упорядочение между элементами неравнозначными.На более технической заметку, функция сравнения является строгий порядок предикат, накладывают слабых в стандартном математические смысле.Binary предикат f(x, y) объект функции, имеется 2 объекта аргумента x и y, а возвращаемое значение из true или false.Упорядочение наведенный на наборе строгие слабые приказывающ если предикат irreflexive бинарный, антисимметрическ и транзитивн и если сравнение транзитивна, где 2 объекта x и y, определенные для быть эквивалентны, когда и f(x, y) и f(y, x) имеет значение false.Если более строгое условие равенства между ключами заменяет любая из эквивалентности, то сортировка будет итогом (в том смысле, что все элементы упорядочиваются по отношению друг к другу) и соответствующие ключи, которые будут indiscernible друг от друга.

Итератор, предоставляемый задать классом двунаправленный итератор, но член класса действует insert и набор имеет версии, принимающие в качестве параметров шаблона более простой итератор ввода, в котором требования к функциональности минимальне, чем требования к гарантированные классом двухнаправленных итераторов.Другие понятия итератора семейство формы, связанную уточнениями в их функциональности.Каждое понятие итератора имеет собственный набор требований и алгоритмы, которые работают с ними ограничение сусла их предположений требованиям, предоставленные этим типом итератора.Оно может быть требуется итератор ввода может быть разыменованн для ссылки на объект и что он может быть увеличен до следующего итератору в последовательности.Это минимальный набор функциональных возможностей, однако оно достаточно для общения значение о диапазоне итераторов [_First, _Last) в контексте функции-члены типа.

e8wh7665.collapse_all(ru-ru,VS.110).gifКонструкторы

set

Создает набор, пусты или копировать все или часть другого набора.

e8wh7665.collapse_all(ru-ru,VS.110).gifОпределения типов

allocator_type

Тип, представляющий allocator класс для заданного объекта.

const_iterator

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

const_pointer

Тип, который предоставляет указатель на элемент const в наборе.

const_reference

Тип, который предоставляет ссылку на элемент const, хранящихся в наборе для чтения и для выполнения операций const.

const_reverse_iterator

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

difference_type

Тип знакового целого числа, который может использоваться для представления количество элементов набора в диапазоне между элементами указал к итераторам.

итератор

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

key_compare

Тип, который предоставляет объект функции, который может сравнить 2 ключа сортировки, чтобы указать относительный порядок 2 элементов в наборе.

key_type

Тип описывает объект, хранящийся как элемент набора в его емкости как ключ сортировки.

указатели

Тип, который предоставляет указатель элемент в набор.

Ссылка

Тип, который предоставляет ссылку на элемент, хранящийся в наборе.

reverse_iterator

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

size_type

Тип целого числа без знака, которое может представлять число элементов в наборе.

value_compare

Тип, который предоставляет объект функции, который может сравнить 2 элемента для определения их относительного порядка в наборе.

value_type

Тип описывает объект, хранящийся как элемент набора в его емкости в качестве значения.

e8wh7665.collapse_all(ru-ru,VS.110).gifФункции элементов

begin

Возвращает итератор, который решает первый элемент в набор.

cbegin

Итератор, который соответствует const возвращает первый элемент в набор.

cend

Итератор, который соответствует const возвращает расположение преуспевая последний элемент в набор.

clear

Стирает все элементы набора.

count

Возвращает количество элементов в наборе параметр- ключ которого соответствует заданному ключу.

crbegin

Возвращает итератор адресации const первый элемент в обращенном наборе.

crend

Итератор, который соответствует const возвращает расположение преуспевая последний элемент в обращенном наборе.

emplace

Вставляет построенный элемент в размещение в набор.

emplace_hint

Вставляет построенный элемент в размещение в набор с подсказкой размещения.

empty

Тесты, если набор пуст.

end

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

equal_range

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

erase

Удаляет элемент или диапазон элементов в наборе из заданных позиций или удаляет элементы, которые соответствуют заданному ключу.

find

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

get_allocator

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

insert

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

key_comp

Извлекает копию объекта, используемый для сравнения ключей order в наборе.

lower_bound

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

max_size

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

rbegin

Возвращает итератор адресацию первый элемент в обращенном наборе.

rend

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

size

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

обмен

Обменивает 2 наборов элементов.

upper_bound

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

value_comp

Извлекает копию объекта сравнения, используемого в значения элемента order в наборе.

e8wh7665.collapse_all(ru-ru,VS.110).gifОператоры

operator=

Заменяет элементы набора с копией другого набора.

Требования

Header: <set>

std пространство имен:

См. также

Ссылки

Потокобезопасность в стандартной библиотеке C++

Стандартная библиотека шаблонов