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 ...
随机推荐
- Computer Vision_33_SIFT:Remote Sensing Image Registration With Modified SIFT and Enhanced Feature Matching——2017
此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...
- Image Processing and Analysis_21_Scale Space:Feature Detection with Automatic Scale Selection——1998
此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...
- opencv+python 添加文字 cv2.putText
import cv2 img = cv2.imread('E:\\usb_test\\example\\yolov3\\rknn_emotion\\test_images\\llj5.jpg') fo ...
- Java字节码文件结构剖析
今天起开启JVM的新的知识学习篇章----Java的字节码,那学习Java字节码有啥用呢?我们知道Java是跨平台的一门语言,编写一次到处运行,而支撑着这个特性的根基为两点:JVM和.class字节码 ...
- curl、fopen和file_get_contents区别
curl多用于互联网网页之间的抓取,fopen多用于读取文件,而file_get_contents多用于获取静态页面的内容. 1. fopen /file_get_contents 每次请求都会重新做 ...
- Vue.js项目中使用 Ajax 和 FormDate 对象上传文件
let param = new FormData(); param.append("paths", this.ruleForm.uploadPath); param.append( ...
- 1、Spring Boot 2.x 简介
GitHub 官方文档 1.1 Spring Boot 是什么? Spring Boot(Boot顾名思义,是引导的意思) 框架是用于简化Spring应用从搭建到开发的过程. 应用开箱即用,只要通过一 ...
- 【LeetCode-86】分隔链表
[题目描述] 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前. 你应当保留两个分区中每个节点的初始相对位置. 示例: 输入: head = 1-& ...
- 删除git中无用的大文件
推荐阅读:为什么你的 Git 仓库变得如此臃肿 有时候我们不小心提交了一些大文件上去,后来删除了,但是已经于事无补了,整个git的提及已经蹭蹭上去了. 这个时候怎么办呢? 1. 查看有哪些大文件(to ...
- 1558:聚会 ybt
1558:聚会 ybt 题解(看似很难,其实要是摸清了实质这就是个大水题) 上题目 1558:聚会 时间限制: 1000 ms 内存限制: 524288 KB提交数: 82 通 ...