头文件
#include <iostream>
#include <map>
using namespace std;
定义
map<char,int>m;//char是下面中括号中元素的数据类型(当然可以换成其他的),int是等号右边的元素的数据类型。定义什么样的类型是随便的,现在听着可能有点迷,看了下面的赋值可能就懂了
//对m进行赋值
map<char,int>m;
m['a']=4;
m['d']=1;
m['c']=2;
//还是对m进行赋值
map<int,int>m;
m[1]=6;
m[3]=4;
m[2]=8;
//这些数值均没有任何特殊意义,都是随便赋的值
常用函数
m.push();
m.pop();
//emmmmmm,上面这两个函数在map里面都没有
m.clear(); //清空m中的所有元素
m.empty(); //判断m是否为空
m.begin(); //返回指向map头部的迭代器
m.end(); //返回指向map尾部的迭代器
m.rbegin(); //返回一个指向map尾部的逆向迭代器
m.rend(); //返回一个指向map头部的逆向迭代器
m.erase(); //删除指定元素
m.inser(); //插入元素
m.find(); //查找指定元素
m.swap(); //交换两个map中的所有元素(注意:两个map中定义的类型需要完全一致)
几乎使用到上述所有函数的超全代码
提前说明:其实在map内部,已经默认将其中的元素按照中括号中的元素的大小,按照从小到大的顺序排列好了
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<char,int>m1;
map<char,int>m2;
m1['q'] = 1;
m1['w'] = 2;
m1['e'] = 3;
m2['a'] = 4;
m2['s'] = 5;
m2['d'] = 6;
cout<<m1.size()<<endl;//运算结果:3
m1.erase(m1.begin());//删除m1中的第一个元素(指的是中括号中所有元素中最小的,即m1['e'] = 3)
map<char,int>::iterator it;//使用迭代器将map中的元素输出
for(it=m1.begin();it!=m1.end();it++)
{
cout<<it->first<<' '<<it->second<<endl;//该语句等价于 cout<<(*it).first<<' '<<(*it).second<<endl;
//这是map的固定输出格式
}
//运算结果:q 1
// w 2
m1.swap(m2);//交换两个map中的所有元素
map<char,int>::reverse_iterator rit;
for(rit=m1.rbegin();rit!=m1.rend();rit++)//逆向输出,可以看成从大到小输出
{
cout<<(*rit).first<<' '<<(*rit).second<<endl;
}
//运算结果:s 5
// d 5
// a 4
return 0;
}
下面是整个代码的运算结果: