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;
}