Набор C ++: стандартная библиотека шаблонов (STL)

Контейнеры набора

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 ++

Оцените статью
nanomode.ru
Добавить комментарий