c++ Map使用
引入头文件:
#include <map>
1、初始化
map<int, int> a, b;
map<sting, int> a, b;
2、添加数据
map<int ,string> maplive;
法一:maplive.insert(pair<int,string>(102,"aclive"));
法二:maplive[112]="April";//map中最简单最常用的插入添加!
3、查找数据
find()函数返回一个迭代器指向键值key的元素,如果没找到返回尾部的迭代器。
map<int ,string> maplive;
map<int ,string >::iterator result;
result=maplive.find(112);
if(l_it==maplive.end())
cout<<"we do not find 112"<<endl;
else cout<<"wo find 112"<<endl;
对于迭代器 result
result->first //存储键值key
result->second //存储数据value
4、删除数据
map<int ,string> maplive;
map<int ,string >::iterator result;
result=maplive.find(112);
if(result==maplive.end())
cout<<"we do not find 112"<<endl;
else maplive.erase(result); //delete 112;map的erase()函数的形参是迭代器。
如果全部删除 maplive.clear()
5、遍历数据
map<int ,string> maplive;
map<int ,string >::iterator result;
for ( result = maplive.begin( ); result != maplive.end( ); result++ ){
cout << " " << result->second;
cout << "." << endl;
}
6、排序
Map中的元素是自动按key升序排序,所以不能对map用sort函数:
7、map的基本操作函数:
C++ Maps是一种关联式容器,包含“关键字/值”对
begin() 返回指向map头部的迭代器
clear() 删除所有元素
count() 返回指定元素出现的次数,其中形参是key值
empty() 如果map为空则返回true
end() 返回指向map末尾的迭代器
erase() 删除一个元素
find() 查找一个元素
insert() 插入元素
key_comp() 返回比较元素key的函数
value_comp() 返回比较元素value的函数
lower_bound() 返回键值>=给定元素的第一个位置(返回结果为迭代器)(形参是key值)
upper_bound() 返回键值>给定元素的第一个位置(返回结果为迭代器)(形参是key值)
max_size() 返回可以容纳的最大元素个数
size() 返回map中元素的个数
swap() 交换两个map
c++ Map使用的更多相关文章
- mapreduce中一个map多个输入路径
package duogemap; import java.io.IOException; import java.util.ArrayList; import java.util.List; imp ...
- .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法
.NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法 0x00 为什么需要Map(MapWhen)扩展 如果业务逻辑比较简单的话,一条主管道就够了,确实用不到 ...
- Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- Java基础Map接口+Collections
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- 多用多学之Java中的Set,List,Map
很长时间以来一直代码中用的比较多的数据列表主要是List,而且都是ArrayList,感觉有这个玩意就够了.ArrayList是用于实现动态数组的包装工具类,这样写代码的时候就可以拉进 ...
- Java版本:识别Json字符串并分隔成Map集合
前言: 最近又看了点Java的知识,于是想着把CYQ.Data V5迁移到Java版本. 过程发现坑很多,理论上看大部分很相似,实践上代码写起来发现大部分都要重新思考方案. 遇到的C#转Java的一些 ...
- MapReduce剖析笔记之八: Map输出数据的处理类MapOutputBuffer分析
在上一节我们分析了Child子进程启动,处理Map.Reduce任务的主要过程,但对于一些细节没有分析,这一节主要对MapOutputBuffer这个关键类进行分析. MapOutputBuffer顾 ...
- MapReduce剖析笔记之七:Child子进程处理Map和Reduce任务的主要流程
在上一节我们分析了TaskTracker如何对JobTracker分配过来的任务进行初始化,并创建各类JVM启动所需的信息,最终创建JVM的整个过程,本节我们继续来看,JVM启动后,执行的是Child ...
- MapReduce剖析笔记之五:Map与Reduce任务分配过程
在上一节分析了TaskTracker和JobTracker之间通过周期的心跳消息获取任务分配结果的过程.中间留了一个问题,就是任务到底是怎么分配的.任务的分配自然是由JobTracker做出来的,具体 ...
- MapReduce剖析笔记之三:Job的Map/Reduce Task初始化
上一节分析了Job由JobClient提交到JobTracker的流程,利用RPC机制,JobTracker接收到Job ID和Job所在HDFS的目录,够早了JobInProgress对象,丢入队列 ...
随机推荐
- MongoDB安装及简单实验
1.Windows下安装MongoDB http://www.mongodb.org/downloads 下载msi,下一步下一步… 安装完毕后,到安装目录的bin目录下执行mongod启动数据库服务 ...
- myeclipse快速开发配置
1,打开MyEclipse 2013然后“window”→“Preferences” 2. 选择“java”,展开,“Editor”,选择“Content Assist”. 3. 选择“Content ...
- Android权限安全(7)binder,service,zygote安全相关简介
binder 提供服务的service中的binder thread 检查调用者的uid 不是root,system就异常. service 也检查调用者的uid 不是root,system,只能注册 ...
- Android开发之创建App Widget和更新Widget内容
App WidgetsApp Widgets are miniature application views that can be embedded in other applications (s ...
- openfire中mysql的前期设置
使用openfire的时候如果需要使用自己的mysql数据库,需要提前进行设置,下面将记录下,基本的设置过程. 一.前期准备工作: 1.先下载两个工具一个是mysql数据库还有一个是SQLyog(可以 ...
- Android studio编译之后显示中文乱码的问题解决办法
在build.gradle文件中加上 android {compileOptions.encoding = "GBK"}
- ruby安装插件报错
有时候我们需要安装ruby插件的时候,会报如下错误: ERROR: Could not find a valid gem 'rdiscount' (>= 0), here is why: Un ...
- perl基本语法
标量 标量是 Perl 中最简单的数据类型.大多数的标量是数字(如 255 或 3.25e20)或者字符串(如 hello或者盖茨堡地址). 数字 perl中所有数字内部的格式都是双精度浮点数. 浮点 ...
- 使用Jquery promise 动态引入js文件
动态加载一个js得方式很多,如下方式: /** *一般方式加载 */ function normalLoadScript(url) { var node = document.createElemen ...
- [转] Jquery滚动加载
原文地址:http://hi.baidu.com/vipxiaofan/item/9eb927b795671f77254b0985 另外一个asp.net的例子:http://blog.csdn.ne ...