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

点这里可以跳转到人工智能网站

发表评论