C++STL之map的使用
map是键值对,比如一个人的名字对应一个学号,这就可以定义一个字符串string类型的人的名字为“键”,学号为int类型的“值”。比如map<string,int>m;当然键值对也可以是其它变量类型,map会将所有的键值对按照键从小到大排序。
map使用时的头文件是#include
map具有排序功能,可以把它理解为数据结构中的二叉树的遍历
以下是map 的常用方法:
```cpp
#include<iostream>
#include<string>
#include<map>
using namespace std;
int main(){
map<string,int>m;//定义一个空的map m,键是string类型的,值是int类型的
m["hello"]=2;//将键(key)为“hello”,值(value)为2的键值对(key-value)存入map中
cout<<m["hello"]<<endl;//访问map中键为"hello"的值,如果键(key)不存在,则返回0
cout<<m["world"]<<endl;
m["world"]=1;//将"world"键对应的值修改为1
m[","]=9;//设立一组键值对,键为“,”,值为9
//用迭代器遍历,输出map中所有的元素,键用it->first来获取,值用it->second来获取
for(auto it =m.begin();it!=m.end();it++)
{
cout<<it->first<<" "<<it->second<<endl;
}
//访问map的第一个元素,输出它的键和值
cout<<m.begin()->first<<" "<<m.begin()->second<<endl;
//访问map的最后一个元素,输出它的键和值
cout<<m.rbegin()->first<<" "<<m.rbegin()->second<<endl;
//输出map的元素个数
cout<<m.size()<<endl;
return 0;
}
由于前面讲到过map具有从小到大排序的功能,所有调试结果是这样!!