C++ multimap初步使用

Stella981
• 阅读 803

multimap与map的区别就在于,multimap可以一个键值对应多个值,而map只能一个键值对应一个值

#include <iostream>
#include <map>

int main()
{    
    std::multimap<int,int> x;
    x.insert(std::pair<int,int>(1,1));
    x.insert(std::pair<int,int>(1,2));
    x.insert(std::pair<int,int>(2,3));
    std::multimap<int,int>::iterator it = x.find(1);
    x.erase(it);
    for(auto a : x)
    {
        std::cout << a.second << std::endl;
    }
     return 0;
}

如果通过iterator这种方式删除,只能删除第一个值(如果有多个的话),如果直接erase键值,则删除键值所关联的所有值,上面这个例子输出的是2,3,而如果x.erase(1),则输出的只有3.

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
java中map接口hashMap以及Enty之间的用法和关系
java中map接口hashMap以及Enty之间的转换首先说的是map接口:Map提供了一种映射关系,其中的元素是以键值对(keyvalue)的形式存储的,能够实现根据key快速查找value;建(key值)不可重复,value值可以重复,一个value值可以和很多key值形成对应关系,每个建最多只能映射到一个值。Ma
Kevin501 Kevin501
3年前
Go语言中new()和make()的区别
1.Go语言中的值类型和引用类型值类型:int,float,bool,string,struct和数组(数组要特别注意,别搞混了)变量直接存储值,分配栈区的内存空间,这些变量所占据的空间在函数被调用完后会自动释放。引用类型:slice,map,chan和值类型对应的指针变量存储的是一个地址(或者理解为指针),指针指向内存中真
Wesley13 Wesley13
3年前
1.利用BeanMap进行对象与Map的相互转换
javabean与map的转换有很多种方式,比如:1、通过ObjectMapper先将bean转换为json,再将json转换为map,但是这种方法比较绕,且效率很低,经测试,循环转换10000个bean,就需要12秒!!!不推荐使用2、通过java反射,获取bean类的属性和值,再转换到map对应的键值对中,这种方法次之,但稍微有点麻烦3、通过
Stella981 Stella981
3年前
ECMA Script 6之 Map 与 Set
Map对象保存键值对。任何值(对象或者原始值)都可以作为一个键或一个值。!ECMAScript6之Map与SetECMAScript6之Map与Set(https://www.linuxprobe.com/wpcontent/uploads/2020/07/126.png)Map对象Map对象保
Wesley13 Wesley13
3年前
16进制显示文件内容
include <iostreaminclude <stdio.husing namespace std;define BUFF_SIZE 20int main (){FILE fp;fp  fopen("epp370p0190_0408.13
Stella981 Stella981
3年前
Key
KeyValue是用一个不可重复的key集合对应可重复的value集合。(典型的例子是字典:通过页码的key值找字的value值)。例子:key1—value1;key2—value2;key3—value3.SortedMap:如果一个Map可以根据key值排序,则称其为SortedMap。(如字典)!!注意数组和集合的区别:数组
Wesley13 Wesley13
3年前
Java集合之Map接口
Map使用键值对来存储数据,将键映射到值对象,一个映射不能包含重复的键,每一个键最多只能映射到一个值。Map接口的具体实现类:HashMap,Hashtable,TreeMap,LinkedHashMap  1)HashMap  基于哈希表(哈希表学习地址)的Map接口实现。允许使用null值和null键,不保证映射的顺序,特别是不保证顺序恒
Wesley13 Wesley13
3年前
Java中的Map集合
Map接口简介Map接口是一种双列集合,它的每个元素都包含一个键对象Key和值对象Value,键和值对象之间存在一种对应关系,称为映射。从Map集合中访问元素时,只要指定了Key,就能找到对应的Value,Map中的键必须是唯一的,不能重复,如果存储了相同的键,后存储的值会覆盖原有的值,简而言之就是键相同,值覆盖。Map常用
Stella981 Stella981
3年前
C++11 thread mutex 我怎么感觉我被坑了。
二话不说,直接上代码了。include <threadinclude <iostreaminclude <mutexusing namespace std;volatile int shared_value  0;volatile int running_count  1
Wesley13 Wesley13
3年前
C++11 STL线程库实现一个简单的线程池
使用C11STL线程库实现一个线程池。处理机制是抢占式的,即所有线程从一个队列(std::queue)中获取任务执行(计算字符串简单HASH值),使用std::mutex和std::conditional\_variable实现队列访问并发协调。include<iostreaminclude<ioma