C++ std::map用法簡介


#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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM