оператор 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 и многому другому, см. Полный курс подготовки к собеседованию .