1.map的賦值
有一下幾種賦值方式,最簡單的是直接賦值,其次是insert賦值,insert又有兩種插入的方法,一種是直接插入pair,另一種是插入value_type數據。如下:
std::map<int, std::string>m_mperson;
//成員初始化列表賦值,成員初始化列表是c++11之後纔有的
m_mperson = {
{ 0, "aa" },
{ 1, "bb" }
};
//insert賦值
m_mperson.insert(std::pair<int, std::string>(2, "Lisan"));
m_mperson.insert(std::map<int, std::string>::value_type(3, "zhangsan"));
//直接賦值
m_mperson[4] = "wangwu";
2.可判斷insert是否成功
std::pair <std::map<int, std::string>::iterator, bool> bInsert;
bInsert= m_mperson.insert(std::pair<int, std::string>(2, "hh"));
if (bInsert.second)
std::cout << "Insert Sucess" << std::endl;
else
std::cout << "Insert Fail" << std::endl;
3.查找
//find
std::map<int, std::string>::iterator iter;
iter = m_mperson.find(1);
if (iter != m_mperson.end())
{
std::cout << "Find" << std::endl;
std::cout << iter->first << " " << iter->second << std::endl;
}
else
std::cout << "Not Find" << std::endl;
4.延伸來看,可將map和function、bind來綁定操作
其實質還是通過key來找value,只是其value變成了函數而已。具體如下:
void Start(std::string str)
{
std::cout <<str << std::endl;
}
void End(std::string str)
{
std::cout <<str << std::endl;
}
int main()
{
m_mapFun = {
{"Start", std::bind(Start, std::placeholders::_1)},
{"End", std::bind(End, std::placeholders::_1)}
};
m_mapFun["Start"]("開始");
m_mapFun["End"]("結束");
return 0;
}