最近,我参与了师兄的论文实现,原型系统需要用到键值对映射。考虑到项目代码采用C++编写,因此,有必要了解下STL中map的使用方法。
定义map
1 | // 1.添加头文件 |
添加元素
直接添加
1 | map[key] = value; |
使用insert函数
- 直接插入
1 | // value_type为std::pair<key_type, mapped_type> |
例如:
1 |
|
这种写法比较啰嗦,为了简化代码,可以使用make_pair
函数,其函数签名如下:
1 | std::pair<T1, T2> make_pair(T1 t, T2 u); |
使用make_pair
函数,上述代码简化为:
1 | mp.insert(make_pair("name", "33")); |
- 在指定位置插入
1 | iterator insert(iterator position, const value_type& value); |
查找元素
函数签名:
1 | map<key_type, mapped_type>::iterator find(const key_type& x); |
示例:
1 |
|
输出结果如下:
1 | sex male |
遍历元素
1 | for (map<key_type, mapped_type>::iterator it = map.begin(); |
删除元素
- 删除单个元素
函数原型:
1 | // 返回删除元素的个数 |
示例:
1 |
|
输出内容如下:
1 | age = 26 |
- 删除一个区间内的所有元素
1 | void erase(iterator first, iterator last); |
示例:
1 |
|
输出内容如下:
1 | age = 26 |