#include <iostream>
#include <map>
#include <string>
#include <cstring>
#include <cstdio>
using namespace std;
typedef map<int,string> UDT_MAP_INT_CSTRING;
UDT_MAP_INT_CSTRING enumMap;
int main()
{
//定义一个map对象
map<int,string> mapStudent;
map<int,string>::iterator it;
//插入元素
//第一种 用insert函数插入pair
mapStudent.insert(pair<int,string>(000,"student_zero"));
//第二种 用insert插入value_type
mapStudent.insert(map<int,string>::value_type(001,"student_one"));
//第三种 用”array“方式插入
mapStudent[123]="student_first";
mapStudent[456]="student_second";
mapStudent[789]="LINING";
//第四种 用inser插入make_pair
mapStudent.insert(make_pair<int,string>(002,"student_two"));
//遍历
for (it=mapStudent.begin();it!=mapStudent.end();it++)
{
cout<<it->first<<" "<<it->second<<endl;
}
//查找find
int nFindKey=123;
/*UDT_MAP_INT_CSTRING::iterator*/ it =mapStudent.find(nFindKey);
if (it==mapStudent.end())
{
cout<<"Do not Find!"<<endl;
}
else
{
cout<<"Find,the value is "<<it->second<<endl;
}
//用迭代器删除了map的第一个
it=mapStudent.begin();
mapStudent.erase(it);
for (it=mapStudent.begin();it!=mapStudent.end();it++)
{
cout<<it->first<<" "<<it->second<<endl;
}
//删除元素erase
//如果要删除123,用迭代器删除
it=mapStudent.find(123);
mapStudent.erase(it);
//验证是否删了
int FindKey=123;
it =mapStudent.find(FindKey);
if (it==mapStudent.end())
{
cout<<"Do not Find!"<<endl;
}
else
{
cout<<"Find,the value is "<<it->second<<endl;
}
//如果要删除456,用关键字删除
//删除成功返回1,否则返回0
int n=mapStudent.erase(456);
if (n=1)
{
cout<<"删除成功!"<<endl;
}
if(n=0)
{
cout<<"删除失败!"<<endl;
}
for (it=mapStudent.begin();it!=mapStudent.end();it++)
{
cout<<it->first<<" "<<it->second<<endl;
}
//查看map里面已经插了多少个数据
int nSize=mapStudent.size();
cout<<"map里面一共有"<<nSize<<"个数据"<<endl;
//清空整个map,相当于mapStudent.clear()
mapStudent.erase(mapStudent.begin(),mapStudent.end());
for (it=mapStudent.begin();it!=mapStudent.end();it++)
{
cout<<it->first<<" "<<it->second<<endl;
}
STL之map
最新推荐文章于 2024-04-02 21:08:00 发布