Метод insert
Метод insert класса unordered_map добавляет новые элементы в контейнер. В первый параметр мы передаем пару ключ-значение, во второй (необязательный) - подсказку позиции вставки, либо диапазон итераторов для вставки нескольких элементов. Если элемент с таким ключом уже существует, вставка не происходит.
Синтаксис
umap.insert(value)
umap.insert(hint, value)
umap.insert(first, last)
umap.insert(initializer_list)
Пример
Давайте добавим один элемент в unordered_map:
#include <iostream>
#include <unordered_map>
using namespace std;
int main()
{
unordered_map<int, string> umap;
umap.insert({1, "abcde"});
umap.insert({2, "12345"});
for (auto el : umap) {
cout << el.first << ": " << el.second << endl;
}
return 0;
}
Результат выполнения кода:
"2: 12345"
"1: abcde"
Пример
Давайте попробуем вставить элемент с уже существующим ключом и проверим результат вставки:
#include <iostream>
#include <unordered_map>
using namespace std;
int main()
{
unordered_map<int, string> umap;
auto res1 = umap.insert({1, "abcde"});
auto res2 = umap.insert({1, "12345"});
cout << "First insert: " << res1.second << endl;
cout << "Second insert: " << res2.second << endl;
cout << "Value: " << umap[1] << endl;
return 0;
}
Результат выполнения кода:
"First insert: 1"
"Second insert: 0"
"Value: abcde"
Пример
Давайте вставим несколько элементов сразу с помощью списка инициализации:
#include <iostream>
#include <unordered_map>
using namespace std;
int main()
{
unordered_map<int, string> umap;
umap.insert({
{1, "abcde"},
{2, "12345"},
{3, "qwerty"}
});
for (auto el : umap) {
cout << el.first << ": " << el.second << endl;
}
return 0;
}
Результат выполнения кода:
"3: qwerty"
"2: 12345"
"1: abcde"
Смотрите также
-
класс
unordered_map,
который представляет хеш-таблицу -
метод
emplace,
который конструирует элемент на месте -
метод
erase,
который удаляет элементы из контейнера -
метод
find,
который ищет элемент по ключу