C++ STL 中的 unordered_map 操作符[]

C++ STL 中的 unordered_map 操作符[]

std::unordered_map::operator[] 是 C++ STL 中的一个内置函数,在容器中查询键值,如果键存在,则返回值的引用。如果不存在,则将该键插入容器。

语法:

mapped_type& operator[](key_type&& k);

参数:接受要访问其映射值的键作为参数。

返回类型:返回与键关联的引用。

示例1

// C++代码演示方法
// unordered_map操作符[]
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
    unordered_map<int, int> sample;
  
    //Map初始化
    sample = { { 1, 2 }, { 3, 4 }, { 5, 6 } };
  
    // 在执行任何操作之前打印元素
    for (auto& it : sample)
        cout << it.first << " : " << it.second << endl;
  
    // 读取现有元素
    int m = sample[1];
  
    // 写入现有元素
    sample[3] = m;
  
    // 访问现有元素
    sample[5] = sample[1];
  
    // 不存在的元素
    // 将插入新元素25
    m = sample[25];
  
    // 将插入新元素10
    sample[5] = sample[10];
  
    // 在执行操作后打印元素
    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++代码演示方法
// unordered_map操作符[]
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
    unordered_map<char, int> sample;
  
    //Map初始化
    sample = { { 'a', 2 }, { 'b', 4 }, { 'c', 6 } };
  
    // 在执行任何操作之前打印元素
    for (auto& it : sample)
        cout << it.first << " : " << it.second << endl;
  
    // 读取现有元素
    int m = sample['a'];
  
    // 写入现有元素
    sample['b'] = m;
  
    // 访问现有元素
    sample['c'] = sample['a'];
  
    // 不存在的元素
    // 将插入新元素'd'
    m = sample['d'];
  
    // 将插入新元素'f'
    sample['c'] = sample['f'];
  
    // 在执行操作后打印元素
    for (auto& it : sample)
        cout << it.first << " : " << it.second << endl;
    return 0;
}
c : 6
b : 4
a : 2
f : 0
a : 2
b : 2
c : 0
d : 0

最坏情况下的时间复杂度为 O(n)。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程