📜  C++ STL-map.operator[]函数(1)

📅  最后修改于: 2023-12-03 15:13:55.575000             🧑  作者: Mango

C++ STL-map.operator[]函数

在C++的STL中,map是一种非常实用的数据结构。而map中的operator[]函数更是非常方便,它可以在访问一个不存在的键(key)时,自动为该键创建一个默认值。

语法
mapped_type& operator[] (const key_type& k);
参数说明
  • k:访问的键值。
  • mapped_type:键对应的值类型。
返回值

返回存储在map中与指定键相关联的值的一个引用。

使用方法

当我们进行map访问时,如果我们访问的键在map中不存在,通常情况下我们需要先判断该键是否存在,然后再进行插入键值对的操作。而调用operator[]函数,则能变得更加简便。这里给出一个例子:

#include <iostream>
#include <map>
using namespace std;

int main ()
{
    map<char,int> my_map;

    my_map['a'] = 10;
    my_map['b'] = 20;
    my_map['c'] = 30;

    //访问map中已存在的键
    cout << "my_map['a'] = " << my_map['a'] << endl;

    //访问map中不存在的键
    cout << "my_map['d'] = " << my_map['d'] << endl;

    return 0;
}

输出结果为:

my_map['a'] = 10
my_map['d'] = 0

可以看到,在访问一个不存在的键时,operator[]函数返回了一个值为0的默认值。这是因为,在创建map时,map的值类型(int)初始化为0。但我们也可以通过修改该值类型的初始值来实现自定义的默认值,例如:

#include <iostream>
#include <map>
using namespace std;

int main ()
{
    map<char,int> my_map;

    my_map['a'] = 10;
    my_map['b'] = 20;
    my_map['c'] = 30;

    //修改map的默认值
    my_map.default_value(100);

    //访问map中不存在的键
    cout << "my_map['d'] = " << my_map['d'] << endl;

    return 0;
}

输出结果为:

my_map['d'] = 100
总结

通过使用operator[]函数,我们可以更加简便地访问map,并且自动为不存在的键设置默认值。需要注意的是,map的默认值是由值类型确定的,因此在使用前需要确保该默认值符合实际需求。