Контейнеры набора
C ++ работают медленнее, чем контейнеры unordered_sets при доступе к отдельным элементам по их ключу. Тем не менее, основным преимуществом наборов является то, что они позволяют выполнять прямую итерацию по подмножествам на основе их порядка элементов в контейнере.
S et в C ++
Набор C ++ — это встроенный ассоциативный контейнер, который содержит уникальные объекты, поскольку значение элементов идентифицирует контейнер. Они хранят уникальные элементы в определенном порядке.
Значение элементов в наборе не может быть изменено после того, как они помещены в контейнер, но могут выполняться другие операции, такие как удаление и вставка в контейнер.
Наборы применяются в основном в деревьях двоичного поиска.
В наборы, мы получаем доступ к элементам с помощью ключа, который идентифицируется.
Определение контейнера
template Class Allocation = allocator > class set;
Здесь class T set :: key_value (Здесь T может принимать любое значение типа данных)
В следующей строке мы сравниваем ключ set :: key_compare/value_compare
В последнем мы выделяем, т.е. устанавливаем :: allocator_type
Параметры
Ключ (T) — Тип содержащегося элемента. Ключ должен быть заменен любым другим типом данных, включая определяемый пользователем тип данных.
Свойства контейнера
1- Ассоциативный : на элементы, присутствующие в контейнерах, обычно ссылаются по их ключу, а не по их абсолютному положению в контейнере.
2- Упорядоченный : элементы контейнера следуют строгому порядку, т. е. всем элементам, вставленным в этот набор, дается позиция в порядке.
3 — Установить: значение элемента также является ключом, используемым для его идентификации.
4- Уникальные ключи : Никакие два элемента в контейнере не могут иметь одинаковые ключи.
5- Распределитель: Контейнер использует объект распределителя для удовлетворения своих требуется хранилище.
Различные функции, связанные с наборами
1- begin () — Он возвращает итератор к первому элементу, присутствующему в наборе.
2- end () — Он возвращает итератор к последнему элементу, присутствующему в наборе.
3- size () — возвращает количество элементов, присутствующих в наборе.
4- max_size () — возвращает максимальное количество элементов, которые конкретный набор может содержать одновременно.
5- empty () — Проверяет и возвращает, является ли набор пустым или нет.
6- rbegin () — возвращает обратный итератор, указывающий на последний элемент, присутствующий в контейнере.
7- rend () — возвращает обратный итератор, который указывает на теоретический элемент прямо перед первым элементом в заданном контейнере..
8- crend () — возвращает постоянный итератор, который указывает на позицию непосредственно перед первым элементом в контейнере.
9- crbegin () — возвращает постоянный итератор, который указывает на последний элемент контейнера.
10- cbegin ( ) — возвращает постоянный итератор, указывающий на первый элемент в контейнере.
11- cend () — возвращает постоянный итератор, который указывает на позицию за последним элементом в контейнере.
12- insert (const k) — добавляет новый элемент ‘k’ в набор.
13 — итератор insert (позиция итератора, const g) — добавляет новый элемент ‘g’ в позицию, указанную итератором.
14- erase (позиция итератора) — удаляет элемент в позиции, указанной итератором.
15- erase (const k) — удаляет значение k из набора.
16- clear () — удаляет все элементы из набора.
17- find (const k) — возвращает n итератор к элементу «k» в наборе, если он найден; иначе он возвращает итератор для завершения.
18- count (const k) — возвращает 1 или 0 на основе элемента k, присутствующего в установить или нет.
19 — lower_bound (const k) — возвращает итератор к первому элементу, эквивалентному ‘k’ или определенно не будет там раньше элемент ‘k’ в наборе.
20 — upper_bound (const k) — возвращает итератор к первому элементу, который эквивалентен ‘k’ или определенно будет следовать за элементом ‘k’ в наборе.
Существуют также другие другие функции для определения набора.
C ++ Установить программу
Q1 — Напишите программу для вставки элемента в набор.
#include #include с использованием пространства имен std; int main () {set set1; set :: iterator it = set1.begin (); установить :: iterator iterator_1, iterator_2; set1.insert (20); set1.insert (202); set1.insert (230); set1.insert (240); set1.insert (250); //печать элемента после вставки coutСм. вывод.
![]()
Q2 - Напишите программу для вставки пяти элементов в наборе, а затем удалите 2 элемента и затем распечатайте набор.
#include #include using namespace std; int main () {set set1; set :: iterator it = set1.begin (); установить :: iterator iterator_1, iterator_2; set1.insert (20); set1.insert (202); set1.insert (230); set1.insert (240); set1.insert (250); //печать элемента после вставки coutСм. вывод.
![]()
Заключение
Наборы - это тип ассоциативных контейнеров, в которых каждый элемент должен быть уникальным, потому что значение элемента идентифицирует его.
Значение элемента не может быть изменено после добавления в набор, хотя его можно удалить и добавить измененное значение этого элемента.
Наконец, набор C ++ пример учебника окончен.
Рекомендуемые сообщения
Pair In C ++
Multiset в C ++
Стек в C ++
Очередь приоритетов в C ++
Deque в C ++