c++_map的基本操作和使用

c++_map的基本操作和使用

ID:11751456

大小:40.00 KB

页数:5页

时间:2018-07-13

c++_map的基本操作和使用_第1页
c++_map的基本操作和使用_第2页
c++_map的基本操作和使用_第3页
c++_map的基本操作和使用_第4页
c++_map的基本操作和使用_第5页
资源描述:

《c++_map的基本操作和使用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C++map的基本操作和使用Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1、map简介map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。2、map的功能自动建立Key-value的对应。key和value可以是任意你需要的类型。根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,1,000,000个记录,最多查找20次。快

2、速插入Key-Value记录。快速删除记录根据Key修改value记录。遍历所有记录。3、使用map使用map得包含map类所在的头文件#include//注意,STL头文件没有扩展名.hmap对象是模板类,需要关键字和存储对象两个模板参数:std:mappersonnel;这样就定义了一个用int作为索引,并拥有相关联的指向string的指针.为了使用方便,可以对模板类进行一下类型定义,typedefmapUDT_MAP_INT_CSTRING;UDT_MAP_INT_CSTRINGenumMap;4、在map

3、中插入元素改变map中的条目非常简单,因为map类已经对[]操作符进行了重载enumMap[1]="One";enumMap[2]="Two";.....这样非常直观,但存在一个性能的问题。插入2时,先在enumMap中查找主键为2的项,没发现,然后将一个新的对象插入enumMap,键是2,值是一个空字符串,插入完成后,将字符串赋为"Two";该方法会将每个值都赋为缺省值,然后再赋为显示的值,如果元素是类对象,则开销比较大。我们可以用以下方法来避免开销:enumMap.insert(map::value_type(2,"Two"))5、查找并获取

4、map中的元素下标操作符给出了获得一个值的最简单方法:CStringtmp=enumMap[2];但是,只有当map中有这个键的实例时才对,否则会自动插入一个实例,值为初始化值。我们可以使用Find()和Count()方法来发现一个键是否存在。查找map中是否包含某个关键字条目用find()方法,传入的参数是要查找的key,在这里需要提到的是begin()和end()两个成员,分别代表map对象中第一个条目和最后一个条目,这两个数据的类型是iterator.intnFindKey=2;//要查找的Key//定义一个条目变量(实际是指针)UDT_MAP_INT_CSTRIN

5、G::iteratorit=enumMap.find(nFindKey);if(it==enumMap.end()){//没找到}else{//找到}通过map对象的方法获取的iterator数据类型是一个std::pair对象,包括两个数据iterator->first和iterator->second分别代表关键字和存储的数据6、从map中删除元素移除某个map中某个条目用erase()该成员方法的定义如下iteratorerase(iteratorit);//通过一个条目对象删除iteratorerase(iteratorfirst,iteratorlast);//

6、删除一个范围size_typeerase(constKey&key);//通过关键字删除clear()就相当于enumMap.erase(enumMap.begin(),enumMap.end());1.map最基本的构造函数;mapmapstring;mapmapint;mapmapstring;mapmapchar;mapmapchar;mapmapint;2.map添加数据;mapmaplive;1.map

7、live.insert(pair(102,"aclive"));2.maplive.insert(map::value_type(321,"hai"));3,maplive[112]="April";//map中最简单最常用的插入添加!3,map中元素的查找:find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。map::iteratorl_it;;l_it=maplive.find(112);if(l_it==ma

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。