在Python中,字典是一个很好用且很常用的数据结构,用于存放“键-值”对。而C++语言中,没有提供直接开箱可用的字典数据结构,而是通过C++标准模板库(STL)中的map关系式容器来实现。
map操作的范例程序如下:
#include<map> //map C++ STL库
#include<string> //C++ string 类库
#include<iostream> //输入输出的iostream类库
using namespace std;
int main()
{
/* 创建字典key-value pair */
typedef map<string, string> StudentInfo;
StudentInfo s_info;
s_info["Jack"] = "boy";
s_info.insert(StudentInfo::value_type("Lucy", "girl"));
s_info.insert(pair<string, string>("Tom", "boy"));
s_info["Peter"] = "boy";
/* 获取字典长度 */
cout << "The Size of s_info: " << s_info.size() << endl;
/* 查找字典元素 */
cout << "The Gender of Tom is: " << s_info.find("Tom")->second << endl;
/* 遍历字典元素 */
StudentInfo::iterator it; //定义StudentInfo的迭代器
for (it = s_info.begin(); it!=s_info.end(); it++)
{
cout << "key: " << it->first << "; value: " << it->second << endl;
}
return 0;
}
运行结果:
![](https://img.haomeiwen.com/i10758717/6b3ad6c2f799d56c.png)
C++ map的基本操作函数:
- begin() 返回指向map头部的迭代器
- clear() 删除所有元素
- count() 返回指定元素出现的次数, (帮助评论区理解: 因为key值不会重复,所以只能是1 or 0)
- empty() 如果map为空则返回true
- end() 返回指向map末尾的迭代器
- equal_range() 返回特殊条目的迭代器对
- erase() 删除一个元素
- find() 查找一个元素
- get_allocator() 返回map的配置器
- insert() 插入元素
- key_comp() 返回比较元素key的函数
- lower_bound() 返回键值>=给定元素的第一个位置
- max_size() 返回可以容纳的最大元素个数
- rbegin() 返回一个指向map尾部的逆向迭代器
- rend() 返回一个指向map头部的逆向迭代器
- size() 返回map中元素的个数
- swap() 交换两个map
- upper_bound() 返回键值>给定元素的第一个位置
- value_comp() 返回比较元素value的函数
网友评论