C++ multimap初步使用

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

1#include <iostream> 2#include <map> 3 4int main() 5{ 6 std::multimap<int,int> x; 7 x.insert(std::pair<int,int>(1,1)); 8 x.insert(std::pair<int,int>(1,2)); 9 x.insert(std::pair<int,int>(2,3)); 10 std::multimap<int,int>::iterator it = x.find(1); 11 x.erase(it); 12 for(auto a : x) 13 { 14 std::cout << a.second << std::endl; 15 } 16  return 0; 17}

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

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java中map接口hashMap以及Enty之间的用法和关系

java中map接口hashMap以及Enty之间的转换首先说的是map接口:Map提供了一种映射关系,其中的元素是以键值对(keyvalue)的形式存储的,能够实现根据key快速查找value;建(key值)不可重复,value值可以重复,一个value值可以和很多key值形成对应关系,每个建最多只能映射到一个值。Ma

Go语言中new()和make()的区别

1.Go语言中的值类型和引用类型值类型:int,float,bool,string,struct和数组(数组要特别注意,别搞混了)变量直接存储值,分配栈区的内存空间,这些变量所占据的空间在函数被调用完后会自动释放。引用类型:slice,map,chan和值类型对应的指针变量存储的是一个地址(或者理解为指针),指针指向内存中真

1.利用BeanMap进行对象与Map的相互转换

javabean与map的转换有很多种方式,比如:1、通过ObjectMapper先将bean转换为json,再将json转换为map,但是这种方法比较绕,且效率很低,经测试,循环转换10000个bean,就需要12秒!!!不推荐使用2、通过java反射,获取bean类的属性和值,再转换到map对应的键值对中,这种方法次之,但稍微有点麻烦3、通过

ECMA Script 6之 Map 与 Set

Map对象保存键值对。任何值(对象或者原始值)都可以作为一个键或一个值。!ECMAScript6之Map与SetECMAScript6之Map与Set(https://www.linuxprobe.com/wpcontent/uploads/2020/07/126.png)Map对象Map对象保

16进制显示文件内容

include <iostreaminclude <stdio.husing namespace std;define BUFF_SIZE 20int main (){FILE fp;fp  fopen("epp370p0190_0408.13