一、基本操作
//创建
map<int, string> map2;
//添加
map2.insert(pair<int, string>(11, "test11"));map2.insert(pair<int, string>(12, "test12"));
map2.insert(make_pair(13, "test13"));
map2.insert(make_pair(14, "test14"));
map2.insert(map<int, string>::value_type(15, "test15"));
map2.insert(map<int, string>::value_type(16, "test16"));
map2[17] = "test17";
map2[18] = "test18";
//遍历
for (map<int, string>::iterator it = map2.begin(); it != map2.end(); it++)
{
int n = it->first;
CString str;
str = it->second.c_str(); //string 转换为CString
}
//删除
while (!map2.empty())
{
map<int, string>::iterator it = map2.begin();
map2.erase(it); //删除
}
二、对插入数据操作结果判断
//对插入数据操作结果判断
map<int, string> map3;
//添加
//typedef pair<iterator, bool> _Pairib;
pair<map<int, string>::iterator, bool> MyPair1 = map3.insert(pair<int, string>(11, "test11"));
pair<map<int, string>::iterator, bool> MyPair2 = map3.insert(pair<int, string>(12, "test12"));
pair<map<int, string>::iterator, bool> MyPair3 = map3.insert(make_pair(13, "test13"));
pair<map<int, string>::iterator, bool> MyPair4 = map3.insert(make_pair(14, "test14"));
pair<map<int, string>::iterator, bool> MyPair5 = map3.insert(map<int, string>::value_type(15, "test15"));
if (MyPair5.second) //true
{
AfxMessageBox(_T("MyPair5插入成功"));
}
else
{
AfxMessageBox(_T("MyPair5插入失败"));
}
pair<map<int, string>::iterator, bool> MyPair6 = map3.insert(map<int, string>::value_type(15, "test55"));
if (MyPair6.second) //false
{
AfxMessageBox(_T("MyPair6插入成功"));
}
else
{
AfxMessageBox(_T("MyPair6插入失败"));
}
//注意
map3[16] = "test16";
map3[16] = "test17"; //使用这种方法,会把上一次的值覆盖,这是这种插入方法的特性