map 就类似于 oc 中的字典,由一个 key 和一个 value 成对出现组成
【map 的主要函数】
begin() //返回指向map头部的迭代器 clear() // 删除所有元素 count() //返回指定元素出现的次数 empty() // 如果map为空则返回true end() // 返回指向map末尾的迭代器 equal_range() // 返回特殊条目的迭代器对 erase() // 删除一个元素 find() // 查找一个元素 get_allocator() //返回map的配置器 insert() // 插入元素 key_comp() // 返回比较元素key的函数 lower_bound() // 返回键值>=给定元素的第一个位置 max_size() // 返回可以容纳的最大元素个数 rbegin() //返回一个指向map尾部的逆向迭代器 rend() //返回一个指向map头部的逆向迭代器 size() //返回map中元素的个数 swap() // 交换两个map upper_bound() // 返回键值>给定元素的第一个位置 value_comp() //返回比较元素value的函数
【map的主要使用方法】
int main(int argc, const char * argv[]) { map<int,string>mapDemo;//第一个类似于 key,第二个类似于 value //添加数据 mapDemo.insert(pair<int, string>(1,"hu"));//第一种添加方法 mapDemo.insert(map<int, string>::value_type(2,"dong"));//第二种添加方法 mapDemo[3]="blog";//第三种添加方法,也是最简单的方法 //输出 cout<<mapDemo[1]<<endl; mapDemo[1]="dong";//是一一对应的,现在就覆盖了第一次的“hu” //或者使用 at cout<<mapDemo.at(1)<<endl; //迭代器输出 map<int, string>::iterator it; for (it=mapDemo.begin(); it!=mapDemo.end(); it++) { cout<<it->first<<endl;//输出前面的 cout<<it->second<<endl;//输出后面的 } //查找 it=mapDemo.find(2);//查找的是前面的那个 key,而不是后面的那个值 if (it==mapDemo.end()) { cout<<"no 2"; } else cout<<it->second<<endl; //删除 it=mapDemo.find(2); mapDemo.erase(it); //排序,Map中的元素是自动按key升序排序,所以不能对map用sort函数,就比如给一个杂乱的插入顺序,还是会自动排好 map<int, string>demo2; demo2[1]="1"; demo2[4]="4"; demo2[3]="3"; demo2[2]="2"; map<int, string>::iterator it2; for (it2=demo2.begin(); it2!=demo2.end(); it2++) { cout<<it2->second<<endl;//输出前面的 } //交换 swap 函数,Map中的swap不是一个容器中的元素交换,而是两个容器交换 //比如交换1,2 swap(mapDemo, demo2); for (it2=demo2.begin(); it2!=demo2.end(); it2++) { cout<<it2->second<<endl;//输出前面的 } return 0; }
【map 的 demo】
GitHub下载地址:https://github.com/DamonHu/HudongMapDemo
GitOsc下载地址:http://git.oschina.net/DamonHoo/HudongMapDemo
版权属于:东哥笔记 - DongGe.org
本文链接:https://dongge.org/blog/136.html
自2017年12月26日起,『转载以及大段采集进行后续编辑』须注明本文标题和链接!否则禁止所有转载和采集行为!