1. 初始化
map<int,string> list1;
map<int,string> list2 = {{1,"java教程"},{2,"c++教程"},{3,"python教程"}};
map<int,string> list3 = {pair<int,string> (1,"java教程"),pair<int,tring> (2,"c++教程")};
2. 添加对象
map<string,int> list1;
list1["mjy"]=0;
list1.insert(pair<string,int> ("mjy",15));
list1.insert({"mjy",13});
3. 遍历
for (auto iter = list1.begin(); iter != list1.end(); ++iter) {
cout << iter->first << " " << iter->second << endl;
4. 删除元素
list1.erase(1); //括号内为key值,也就是左值
5. 修改元素
map<int,int> list1;
list1.insert(pair<int,int> (1,15));
list1[1] = 5;
cout<<list1[1]; //输出结果为5而不是15
6. 查找元素
可以直接通过key值查找,如果要通过value值找的话需要借助find函数
map<int,int> list1 = {{1,12},{2,15},{3,18},{4,22}};
cout<<list1[1]; //输出结果为12
cout<<list1[12]; //错误,不能直接用value值
cout<<find(12)->first; //输出1
cout<<find(1)->second; //输出12
cout<<count(1)<<endl; //返回1是否存在,若存在,返回1,否则返回0
7. 其他操作
map<string,int> map_1;
map_1.clear(); //清除所有元素
map_1.empty(); //如果为空返回1,负责返回0
map_1.size(); //返回容器的元素个数
map_1.max_size; //返回容器可以容纳的最大元素
//可以用过迭代器与first,second访问元素
map_1.begin()->first; //结果为容器的第一个元素的key值
map_1.begin()->second; //结果为容器的第一个元素的value值
以上操作的时间复杂度:
插入: O(logN)
查看: O(logN)
删除: O(logN)