оператор unordered_map [] в C ++ STL

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

Std :: unordered_map :: operator [] - это встроенная функция в C ++ STL, которая возвращает ссылку на значение, если ключ в контейнере совпадает. Если ключ не найден, он вставляет этот ключ в контейнер.
Синтаксис:

сопоставленный_тип и оператор [] (тип_ключа && k);

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

Пример 1

// C++ code to illustrate the method
// unordered_map operator[]
#include <bits/stdc++.h>
using namespace std;
int main()
{
unordered_map< int , int > sample;
// Map initialization
sample = { { 1, 2 }, { 3, 4 }, { 5, 6 } };
// print element before doing
// any operations
for ( auto & it : sample)
cout << it.first << " : " << it.second << endl;
// existing element is read
int m = sample[1];
// existing element is written
sample[3] = m;
// existing elements are accessed
sample[5] = sample[1];
// non existing element
// new element 25 will be inserted
m = sample[25];
// new element 10 will be inserted
sample[5] = sample[10];
// print element after doing
// operations
for ( auto & it : sample)
cout << it.first << " : " << it.second << endl;
return 0;
}
Выход:
5: 6
3: 4
1: 2
10: 0
1: 2
5: 0
3: 2
25: 0

Пример 2

// C++ code to illustrate the method
// unordered_map operator[]
#include <bits/stdc++.h>
using namespace std;
int main()
{
unordered_map< char , int > sample;
// Map initialization
sample = { { 'a' , 2 }, { 'b' , 4 }, { 'c' , 6 } };
// print element before doing
// any operations
for ( auto & it : sample)
cout << it.first << " : " << it.second << endl;
// existing element is read
int m = sample[ 'a' ];
// existing element is written
sample[ 'b' ] = m;
// existing elements are accessed
sample[ 'c' ] = sample[ 'a' ];
// non existing element
// new element 'd' will be inserted
m = sample[ 'd' ];
// new element 'f' will be inserted
sample[ 'c' ] = sample[ 'f' ];
// print element after doing
// operations
for ( auto & it : sample)
cout << it.first << " : " << it.second << endl;
return 0;
}
Выход:
с: 6
а: 4
а: 2
ж: 0
а: 2
Би 2
c: 0
г: 0

Сложность времени O (n) в худшем случае.

Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .



C++