Метод insert
Метод insert добавляет элементы в
unordered_set. Если элемент уже
присутствует в контейнере, повторного добавления
не происходит, так как unordered_set
хранит только уникальные значения. Метод
возвращает пару, первый элемент которой является
итератором на добавленный или уже существующий
элемент, а второй - значением типа bool,
которое равно true, если вставка
произошла, и false, если такой элемент
уже был в контейнере.
В первый параметр мы передаем значение, которое хотим добавить в контейнер. Существует также перегрузка, принимающая итераторы начала и конца диапазона, элементы которого нужно добавить.
Синтаксис
uset.insert(value)
uset.insert(first, last)
Пример
Давайте добавим число 3 в
unordered_set и проверим результат
вставки:
#include <iostream>
#include <unordered_set>
using namespace std;
int main()
{
unordered_set<int> uset = {1, 2, 4, 5};
auto res = uset.insert(3);
cout << *res.first << endl;
cout << res.second << endl;
return 0;
}
Результат выполнения кода:
3
1
Пример
Давайте попробуем добавить в
unordered_set элемент, который уже
в нем есть, и посмотрим на результат:
#include <iostream>
#include <unordered_set>
using namespace std;
int main()
{
unordered_set<int> uset = {1, 2, 3, 4, 5};
auto res = uset.insert(3);
cout << *res.first << endl;
cout << res.second << endl;
return 0;
}
Результат выполнения кода:
3
0
Как видно из результата, повторной вставки не
произошло, а второй элемент пары равен 0.
Пример
Давайте выведем все элементы
unordered_set после добавления нового
значения:
#include <iostream>
#include <unordered_set>
using namespace std;
int main()
{
unordered_set<int> uset = {1, 2, 4, 5};
uset.insert(3);
for (int el : uset) {
cout << el << " ";
}
return 0;
}
Результат выполнения кода:
5 4 3 2 1
Смотрите также
-
класс
unordered_set,
который хранит уникальные элементы -
метод
find,
который ищет элемент в контейнере -
метод
contains,
который проверяет наличие элемента -
метод
erase,
который удаляет элементы из контейнера