首页 > 代码库 > map 小模板~~~ 写的不好 继续添加
map 小模板~~~ 写的不好 继续添加
#include<map>
#include<string.h>
#include<iostream>
using namespace std;
int main()
{
///map插入
map<string,int> mp; ///<key值 val值>
mp["a"]=1;
mp["b"]=2;
mp["c"]=3;
map<string,int>::iterator it;
for(it=mp.begin(); it!=mp.end(); ++it)
cout<<"key: "<<it->first <<" value: "<<it->second<<endl;
return 0;
///mapde大小
int len=mp.size();
///数据清空与判空
mp.clear();
mp.empty(); ///if空了 返回true else return false
///map的删除 erase函数
for (iter = mm.begin(); iter != mm.end();) ///如果没有else部分 iter删除后之后的for循环里就会乱了
{
if ( iter->second == something )
mm.erase( iter++ );
else
iter++; // Use Pre Increment for efficiency.
}
///等同于
for (iter = mm.begin(); iter != mm.end();)
{
if ( iter->second == something )
{
map<string, string>::iterator iter_erase;
iter_erase = iter++ //先保存后++再删除
mm.erase( iter_erase );
}
else
iter++; // Use Pre Increment for efficiency.
}
///map排序
map<int,Student> stu_map;///升序排列
///如果要降序 则
map<int,Student> stu_map;改为
map<int,Student, greater<int> > stu_map;
///以及
map<int,Student>::iterator iter;改为
map<int,Student, greater<int> >::iteratoriter;
即可。
其实,map<int,Student> stu_map;这是一种缺省的情况,它和
map<int,Student, less<int> > stu_map;是一样的。
}