#include "map" //引入頭文件
初始化:
std::map <int, std::string> _map1; //初始化
//c++11中引入的,可以直接在初始化時賦值
std::map <int, std::string> _map =
{
{0,"11"},
{2,"22"},
{3,"33"},
};
插入:
// 如果已經存在鍵值200,則會作賦值修改操作,如果沒有則插入
_map[200] = "booomm";
//通過insert插入
_map.insert(std::pair<int, std::string>(4, "33333"));
取值:
用at和[]:
//Map中元素取值主要有at和[]兩種操作,at會作下標檢查,而[]不會。
std::cout<< _map.at(100).c_str()<< std::endl;//使用at會進行關鍵字檢查,因為沒有100因此該語句會報錯
std::cout << _map.at(4).c_str() << std::endl;//因為已經有4了,不會報錯
std::cout << _map[300].c_str() << std::endl;//ID_Name中沒有關鍵字200,使用[]取值會導致插入,因此不會報錯,但打印結果為空
用find函數來定位數據出現位置,它返回的一個迭代器,當數據出現時,它返回數據所在位置的迭代器,如果map中沒有要查找的數據,它返回的迭代器等於end函數返回的迭代器:
auto iter=_map.find(200);
if(iter==_map.end())
{
assert(false); //若沒有200這個元素,會返回end
return;
}
auto value=iter->second; //second返回iter的value
遍歷:
for(auto item =_map.begin();item!=_map.end();item++)
{
auto value= item->second;
if(value==L"11")
{
//do someting.....
}
}
參考資料:http://blog.csdn.net/shuzfan/article/details/53115922