map[C++]
//map是一个存储键值对的容器,也是一个双向链表
#include <iostream>
using namespace std;
#include <map>
int main(int argc, const char * argv[])
{
map<int, string> maplive;
maplive.insert(pair<int,string>(110,"April1"));
maplive.insert(map<int,string>::value_type(111,"April2"));
maplive[112] = "April3";
map<int,string>::iterator l_it,l_it2;
int i = maplive.size();
for (l_it = maplive.begin(); l_it != maplive.end(); ) {
if (l_it->first == 110) {
l_it2 = l_it;
l_it2++;
maplive.erase(l_it);
l_it = l_it2;
}
else
l_it++;
}
//打印
for (l_it = maplive.begin(); l_it != maplive.end();l_it++) {
cout << l_it -> second << endl; //取值是second,取key是first
}
return 0;
}
C++ Maps是一种关联式容器,包含“关键字/值”对。
C++ Multimaps和maps很相似,但是MultiMaps允许重复的元素。 1.begin() 返回指向map头部的迭代器
2.clear() 删除所有元素
3.count() 返回指定元素出现的次数
语法:
size_type count( const KEY_TYPE &key ); //返回map中键值等于key的元素的个数
4.empty() 如果map为空则返回true 5.end() 返回指向map末尾的迭代器 6.equal_range() 返回特殊条目的迭代器对
语法:
pair equal_range( const KEY_TYPE &key ); 返回两个迭代器,指向第一个键值为key的元素和指向最后一个键值为key的元素
7.erase() 删除一个元素 语法:
void erase( iterator i ); //删除i元素
void erase( iterator start, iterator end ); //删除从start开始到end(不包括end)结束的元素 size_type erase( const key_type &key ); //删除等于key值的所有元素(返回被删除的元素的个数)
8.find() 查找一个元素 语法:
iterator find( const key_type &key );
11
//查找等于key值的元素,并返回指向该元素的迭代器;
//如果没有找到,返回指向集合最后一个元素的迭代器. 9.get_allocator() 返回map的配置器
10.insert() 插入元素
语法:
iterator insert( iterator pos, const pair<KEY_TYPE,VALUE_TYPE> &val ); //插入val到pos的后面,然后返回一个指向这个元素的迭代器
void insert( input_iterator start, input_iterator end );
//插入start到end的元素到map中
pair<iterator, bool> insert( const pair<KEY_TYPE,VALUE_TYPE> &val ); //只有在val不存在时插入val。返回指向被插入元素的迭代器和描述是否插入的bool值
11.key_comp() 返回比较元素key的函数 语法:
key_compare key_comp();
//返回一个用于元素间值比较的函数对象 12.lower_bound() 返回键值>=给定元素的第一个位置
语法:
iterator lower_bound( const key_type &key ); //返回一个指向大于或者等于key值的第一个元素的迭代器
13.max_size() 返回可以容纳的最大元素个数 14.rbegin() 返回一个指向map尾部的逆向迭代器 15.rend()返回一个指向map头部的逆向迭代器 16.size() 返回map中元素的个数
17.swap() 交换两个map 语法:
void swap( map &obj );
//swap()交换obj和现map中的元素
18.upper_bound() 返回键值>给定元素的第一个位置
语法:
iterator upwer_bound( const key_type &key ); //返回一个指向大于key值的第一个元素的迭代器
19.value_comp() 返回比较元素value的函数 语法:
value_compare value_comp(); //返回一个用于比较元素value的函数
map[C++]的更多相关文章
- 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对象,丢入队列 ...
随机推荐
- Binary Tree Vertical Order Traversal
Given a binary tree, return the vertical order traversal of its nodes' values. (ie, from top to bott ...
- struts2 中属性驱动(其实就是struts2 action 中处理 request 的参数【old 方式servlet api 封装数据到javabean中(or beanutils)】),这里属性驱动是新方式
1.属性驱动 a\ 一般的set public class UserAction extends ActionSupport { private String username; private S ...
- iOS 开启data protection 的方法
我这里说的data protection,指的是设备设置密码后,如果设备锁屏,并且当前解锁需要密码(有时可能因为自己的设定,导致会再几小时后才需要密码),这时应用程序处于加密状态,无法从外部读取.如果 ...
- Win7下打开计算机管理时出现错误的解决办法
计算机管理是用户在使用计算机时经常用到的一个选项,可以在桌面上右击计算机,选择"管理"打开.也可以在运行框中输入:compmgmt.msc打开计算机管理程序,里面有常用系统工具如用 ...
- [转]AndroidStudio导出jar包
原文链接:http://blog.csdn.net/hjq842382134/article/details/38538097# 1. 不像在Eclipse,可以直接导出jar包.AndroidStu ...
- 【Git】标签管理
来源:廖雪峰 为什么要标签: 发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来. ...
- SQLServer 批量插入数据的两种方法
SQLServer 批量插入数据的两种方法-发布:dxy 字体:[增加 减小] 类型:转载 在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Ins ...
- [Android] adb shell dumpsys的使用
reference to :http://blog.csdn.net/g19920917/article/details/38032413 有两种方法可以查看service list: 1. adb ...
- July 1st, Week 27th Friday, 2016
It does not do to dwell on dreams, and forget to live. 不要生活在梦里,不要沉醉于空想而疏忽了生活. Stand straightly, and ...
- mysql my.cnf配置文件详解
本配置文件针对Dell R710,双至强E5620.16G内存的硬件配置.CentOS 5.6 64位系统,MySQL 5.5.x 稳定版.适用于日IP 50-100w,PV 100-300w的站点, ...