C++中的map

简介

是STL的一个关联容器,提供一对一(key:value)的数据处理; map内部自建一颗红黑树(严格意义的平衡二叉树),对数据进行自动排序; 增加和删减节点对迭代器影响很小; 对于迭代器,可以修改关键字的值,但不能修改key; 根据key快速查找记录,复杂度为log(N);

使用

  • 使用map得包含map类所在的头文件:#include <map>
  • map实例化:std:map<int,string> personnel;
  • 方便使用,可以利用typedef:
typedef map<int,CString> UDT_MAP_INT_CSTRING; UDT_MAP_INT_CSTRING enumMap;

数据插入

\1. insert函数 插入pair数据

map<int, string> mapStudent;   mapStudent.insert(pair<int, string>(1, "student_one"));  

\2. insert插入value_type数据

map<int, string> mapStudent;     mapStudent.insert(map<int, string>::value_type (1, "student_one"));  

\3. 数组方式插入数据

map<int, string> mapStudent;   mapStudent[1] = "student_one";  
  • 1和2在效果上是完成一样的,用 insert 函数插入数据,涉及到集合的唯一性,即当 map 中有这个关键字时,insert 操作是插不了的;
  • 3的数组方式就不同了,它可以覆盖以前该关键字对 应的值。
    数据查找
    通过find()方法,
  • 传入参数是要查找的 key;
  • 返回的一个迭代器,当数据出现时,它返回数据所在位置的迭代器,没有要查找的数据,则返回 end 函数返回的迭代器。
  • 通过 map 对象的方法获取的 iterator 数据类型是一个 std::pair 对象,包括两个数据 iterator->firstiterator->second 分别代表关键字和存储的数据。
map<int, string>::iterator iter;  
iter = mapStudent.find(1);   
if(iter != mapStudent.end()) //判断是否找到要查找的key       
    cout<<"Find, the value is"<<iter->second<<endl;   
else         
cout<<"Do not Find"<<endl;  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • map. find函数找不到key所对应的值,则返回map迭代尾。 map. first 为map的key值。 m...
    yshi2017阅读 390评论 0 0
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,620评论 1 51
  • 容器的概念所谓STL容器,即是将最常运用的一些数据结构(data structures)实现出来。容器是指容纳特定...
    饭饭H阅读 426评论 0 0
  • STL部分 1.STL为什么广泛被使用 C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vec...
    杰伦哎呦哎呦阅读 4,440评论 0 9
  • 1 OC调用原理 OC 使用的是消息结果而非函数调用。其运行时执行的代码由运行环境决定,只有在运行时才会查找所要执...
    CaptainRoy阅读 374评论 0 0

友情链接更多精彩内容