c++ map multimap操作
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main()
{
map<int, string> map1;
multimap<int, string> multimap1;
map1.insert(map<int,string>::value_type(1,"One"));
map1.insert(map<int, string>::value_type(2, "Two"));
map1.insert(map<int, string>::value_type(3, "Three"));
map1.insert(make_pair(-1,"Minus One"));
map1.insert(pair<int,string>(1000,"Four"));
map1[100] = "Five";
cout << "map1 size:" << map1.size() << endl;
map<int, string>::const_iterator map_iter;
for (map_iter =map1.begin();map_iter !=map1.end();++map_iter)
{
cout << "key:" << map_iter->first << " value:" << map_iter->second.c_str() << endl;
}
cout << "---------------------------"<< endl;
multimap1.insert(multimap<int,string>::value_type(1,"One"));
multimap1.insert(multimap<int, string>::value_type(1, "One"));
multimap1.insert(multimap<int, string>::value_type(2, "Two"));
multimap1.insert(pair<int,string>(2,"Test"));
multimap1.insert(pair<int,string>(2,"Test2"));
multimap1.insert(make_pair<int,string>(3,"Test"));
cout << "multimap size:" << multimap1.size() << endl;
multimap<int, string>::const_iterator multimap_iter;
for (multimap_iter = multimap1.begin();multimap_iter != multimap1.end();++multimap_iter)
{
cout << "key:" << multimap_iter->first << " value:" << multimap_iter->second.c_str() << endl;
}
cout << "element count:" << multimap1.count(1) << endl;
cout << "-----------------------------------------" << endl;
multimap<int, string>::const_iterator iter2;
iter2 = multimap1.find(2);
if (iter2 != multimap1.end())
{
size_t element_count = multimap1.count(2);
for (int k=0;k<element_count;k++)
{
cout << "find: "<<k<<" " << iter2->first << " " << iter2->second.c_str() << endl;
++iter2;
}
}
else
{
cout << "not found..." << endl;
}
cout << "---------------------------------------------"<<endl;
if (multimap1.erase(2)>0)
{
cout << "delete element success..."<<endl;
}
multimap<int, string>::const_iterator multimap_iter1;
for (multimap_iter1 = multimap1.begin(); multimap_iter1 != multimap1.end(); ++multimap_iter1)
{
cout << "key:" << multimap_iter1->first << " value:" << multimap_iter1->second.c_str() << endl;
}
cout << "---------------------------------------------" << endl;
multimap<int, string>::iterator iter3 = multimap1.find(1);
if (iter3 != multimap1.end())
{
size_t element_count = multimap1.count(1);
for (int k=0;k<element_count;k++)
{
iter3 = multimap1.find(1);
multimap1.erase(iter3);
//++iter3;
cout << "delete success..." << endl;
}
}
cout << "---------------------------------------------" << endl;
multimap<int, string>::const_iterator multimap_iter2;
for (multimap_iter2 = multimap1.begin(); multimap_iter2 != multimap1.end(); ++multimap_iter2)
{
cout << "key:" << multimap_iter2->first << " value:" << multimap_iter2->second.c_str() << endl;
}
system("pause");
return 0;
}
======================================
map1 size:6
key:-1 value:Minus One
key:1 value:One
key:2 value:Two
key:3 value:Three
key:100 value:Five
key:1000 value:Four
---------------------------
multimap size:6
key:1 value:One
key:1 value:One
key:2 value:Two
key:2 value:Test
key:2 value:Test2
key:3 value:Test
element count:2
-----------------------------------------
find: 0 2 Two
find: 1 2 Test
find: 2 2 Test2
---------------------------------------------
delete element success...
key:1 value:One
key:1 value:One
key:3 value:Test
---------------------------------------------
delete success...
delete success...
---------------------------------------------
key:3 value:Test
请按任意键继续. . .
c++ map multimap操作的更多相关文章
- STL中的map/multimap小结
(1)使用map/multimap之前必须包含头文件<map>:#include<map> 并且和所有的关联式容器一样,map/multimap通常以平衡二叉树来完成 (2)n ...
- C++ map multimap
map multimap map,multimap key-value对容器,也叫字典,map中不能存放key相同的元素,而multimap可以,容器中元素默认按升序排序 map multimap的相 ...
- STL:map/multimap用法详解
map/multimap 使用map/multimap之前要加入头文件#include<map>,map和multimap将key/value当作元素,进行管理.它们可根据key的排序准则 ...
- 09--STL关联容器(map/multimap)
一:map/multimap的简介 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供基于key的快速检索能力. map中key值是唯一的.集合中的元素按一定的顺 ...
- c/c++ 标准库 map multimap元素访问
标准库 map multimap元素访问 一,map,unordered_map下标操作 下标操作种类 功能描述 c[k] 返回关键字为k的元素:如果k不在c中,添加一个关键字为k的元素,并对其初始化 ...
- map && multimap
map map 的意思是映射.用法一般是 map<char, int>mp 按照我的理解,map 类似于一个高级的数组.前面的数据类型 char 相当于下脚标,而数组元素的值就对应 ...
- STL::map/multimap
map: 默认根据 key 排序(从小到大),能够通过 backet operator(operator [ ]) 来获取元素,内部由二叉搜索树来实现(binary search trees). mu ...
- STL之六:map/multimap用法详解
转载于:http://blog.csdn.net/longshengguoji/article/details/8547007 map/multimap 使用map/multimap之前要加入头文件# ...
- STL——容器(Map & multimap)的拷贝构造与赋值
1. Map & multimap 的拷贝构造与赋值 map(const map &mp); //拷贝构造函数 map& operator=(con ...
随机推荐
- linux命令详解——eval
shell中的eval 功能说明:重新运算求出参数的内容. 语 法:eval [参数] 补充说明:eval可读取一连串的参数,然后再依参数本身的特性来执行. 参 数:参数不限数目,彼此之间用分号分开. ...
- 14.Vue组件
1.定义Vue组件 什么是组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用对应的组件即可: 组件化和模块化的不 ...
- 分析可变形字符串序列StringBuilder 以及 StringBuffer之默认大小与扩容
默认值初始化: 1. 首先明确 StringBuffer类与 StringBuilder类均继承了抽象类 AbstractStringBuilder类 无参构造方法 2. 源码中StringBuff ...
- XPath 爬虫解析库
XPath XPath,全称 XML Path Language,即 XML 路径语言,它是一门在 XML 文档中查找信息的语言.最初是用来搜寻 XML 文档的,但同样适用于 HTML 文档的 ...
- mysql 5.7 版本 You must reset your password using ALTER USER statement before executing this statement报错处理
https://blog.csdn.net/muziljx/article/details/81541896 MySQL版本5.7.6版本开始的用户可以使用如下命令: mysql> ALTER ...
- vue开发记录
vue开发过程中遇到的一些小问题.小技巧等,会不断更新~ 记录不详细处,欢迎留言
- 浅谈JavaScript严格模式(use strict)
"use strict" 的目的是指定代码在严格条件下执行. 严格模式下你不能使用未声明的变量. 严格模式声明 严格模式通过在脚本或函数的头部添加 "use strict ...
- 一些有用的dll
1.生成excel工具- EPPlus EPPlus.dll 2.生成word工具 - OpenXml DocumentFormat.OpenXml.dll 3.生成条形码工具 - ZXing zx ...
- 利用chrome console批量下载文件
因工作需要,需要定期从某页面下载多个文档,是体力活. 想用chrome扩展,找了几个不行.原因是: 1.有的扩展识别不了链接,因为链接是形如:jsp?XXX=XXX的形式 2.有的扩展能批量打开链接, ...
- Luogu5298 [PKUWC2018]Minimax
太久没写博客了,过来水一发. 题目链接:洛谷 首先我们想到,考虑每个叶节点的权值为根节点权值的概率.首先要将叶节点权值离散化. 假设现在是$x$节点,令$f_i,g_i$分别表示左/右节点的权值$=i ...