Вставка unordered_map в C ++ STL

Опубликовано: 30 Декабря, 2021

Unordered_map :: insert () - это встроенная функция в C ++ STL, которая используется для вставки элементов с определенным ключом в контейнер unordered_map. Эта функция увеличивает размер контейнера на 1. Эта функция не вставляет повторяющиеся записи. Возможны следующие варианты этой функции. Все это перегруженные функции.
Синтаксис-1:

iterator unordered_map_name.insert({key, element})

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

// C++ program to illustrate
// unordered_map::insert({key, element})
#include <bits/stdc++.h>
using namespace std;
int main()
{
// initialize container
unordered_map< int , int > ump;
// insert elements in random order
ump.insert({ 20, 130 });
ump.insert({ 100, 410 });
ump.insert({ 31, 60 });
// prints the elements
cout << "KEY ELEMENT " ;
for ( auto itr = ump.begin(); itr != ump.end(); itr++) {
cout << itr->first
<< ' ' << itr->second << ' ' ;
}
return 0;
}
Выход:
КЛЮЧЕВОЙ ЭЛЕМЕНТ
31 60
20 130
100 410

Синтаксис-2:

iterator unordered_map_name.insert(iterator position, {key, element})

Эта функция вставляет элемент в unordered_map после в указанной позиции.
Параметры: ключ параметров и элементы такие же, как в функции типа 1, но позиция - это то место, откуда выполняется операция поиска для вставки элемента в контейнер.
Возвращаемое значение Функция возвращает итератор, указывающий на новый элемент в контейнере.
Программа ниже четко иллюстрирует синтаксис выше.

// C++ program to illustrate
// unordered_map::insert(iterator position, {key, element})
#include <bits/stdc++.h>
using namespace std;
int main()
{
// initialize container
unordered_map< char , int > ump;
// insert elements in random order
ump.insert({ 'a' , 1 });
ump.insert({ 'b' , 2 });
auto it = ump.find( 'a' );
// inserts {3, 6} starting the search from
// position where 2 is present
ump.insert(it, { 'c' , 3 });
// prints the elements
cout << "KEY ELEMENT " ;
for ( auto itr = ump.begin(); itr != ump.end(); ++itr) {
cout << itr->first
<< ' ' << itr->second << ' ' ;
}
return 0;
}
Выход:
КЛЮЧЕВОЙ ЭЛЕМЕНТ
c 3
а 1
Би 2

Синтаксис-3:

iterator unordered_map_name.insert(iterator position1, iterator position2)

Параметры: эта функция принимает два параметра position1 и position2, которые определяют диапазон, в котором все элементы между этим диапазоном вставляются в другой контейнер, включая элемент в позиции 1, но исключая элемент в позиции 2.
Возвращаемое значение Функция возвращает итератор, указывающий на новый элемент в контейнере.
Программа ниже четко иллюстрирует синтаксис выше.

// C++ program to illustrate
// unordered_map::insert(iterator position1, iterator position2)
#include <bits/stdc++.h>
using namespace std;
int main()
{
// initialize container
unordered_map< int , int > ump, ump1;
// insert elements in random order
ump.insert({ 2, 20 });
ump.insert({ 1, 10 });
ump.insert({ 3, 30 });
// inserts all elements in range
// [begin, end) in mp1
// this function is used to copy elements
// between containers.
ump1.insert(ump.begin(), ump.end());
// prints the elements
cout << "Elements in ump1 are " ;
cout << "KEY ELEMENT " ;
for ( auto itr = ump1.begin(); itr != ump1.end(); ++itr) {
cout << itr->first
<< ' ' << itr->second << ' ' ;
}
return 0;
}
Выход:
Элементы в ump1:
КЛЮЧЕВОЙ ЭЛЕМЕНТ
1 10
2 20
3 30
Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .