首页 > 其他分享 >map和multimap

map和multimap

时间:2023-05-08 19:11:48浏览次数:37  
标签:map multimap auto 键值 key pair

map相对于set区别,map具有键值和实值,所有元素根据键值自动排序,pair的第一个值被称为键值key,pair的第二个值被称为实值value。map也是以红黑树为底层实现机制,根据key进行排序

构造函数

#include<map>
map<int,string> m;
multimap<T1,T2> mlmap;

插入

  • 方法一

    map的key重复将无法放入,multimap则可以

    m.insert({1,"汪汪汪"});
    
  • 方法二

    map的key重复则更新value
    注意!!multimap不能用这种方法,因为key不唯一
    []方法访问map,如果key不存在将会自动创建

    m[2]="喵喵喵";  
    
  • 其他方法

    m.insert(pair<int,string>(3,"咩咩咩"));
    m.insert(make_pair(4,"咕咕咕"));
    

遍历

for(auto it=m.begin();it!=m.end();it++)
{
	cout<<it->first<<" "<<(*it).second<<endl;
}
for(auto it:m)
{
	cout<<it.first<<" "<<it.second<<endl;
}

查找

返回迭代器,找不到返回end迭代器

auto it=m.find(2);
cout<<it->second<<endl;

大小

int size();
bool empty();

标签:map,multimap,auto,键值,key,pair
From: https://www.cnblogs.com/mpmp/p/17382860.html

相关文章

  • 关于map或for自动停止循环的问题
    问题在维护一个老项目时发现map循环数组循坏到index为14时就自动不循环了(数组长度为79),并且也不运行后面的代码代码//问题代码awaituseMyFetch('url',{afterFetch(ctx){constresdata=safeParse(ctx.data)//json字符串转换为对象co......
  • asyncio.Semaphore
     asyncio.Semaphore是一个异步信号量,用于协调多个协程对共享资源的访问。异步信号量在协程中的使用方式与线程中的普通信号量类似,但是它是非阻塞的。当信号量的计数器为0时,协程将会被阻塞,直到其他协程释放了该信号量。 importasyncioasyncdefworker(semaphore):......
  • 如何决定使用 HashMap 还是 TreeMap?
    @[toc]问:如何决定使用HashMap还是TreeMap?介绍TreeMap<k,v>的Key值是要求实现java.lang.Comparable,所以迭代的时候TreeMap默认是按照Key值升序排序的;TreeMap的实现是基于红黑树结构。适用于按自然顺序或自定义顺序遍历键(key)。HashMap<k,v>的Key值实现散列hashCode(),分布是散列的......
  • nmap一些使用
     Nmap使用Nmap是主机扫描工具,他的图形化界面是Zenmap,分布式框架为Dnamp。Nmap可以完成以下任务:主机探测端口扫描版本检测系统检测支持探测脚本的编写Nmap在实际中应用场合如下:通过对设备或者防火墙的探测来审计它的安全性探测目标主机所开放的端口通过识别新......
  • Map
    Mapmap线程安全方式k/v为null数据结构(1.8)扩容机制迭代器HashMap不安全均可数组+链表+红黑树初始16,扩容2倍容器本身ConcurrentHashMap锁分段+CASNPE数组+链表+红黑树初始16,扩容2倍容器的克隆HashtablesynchronizedNPE数组+链表初始11,扩容2......
  • js基础---对象的序列化(JSON)与map
    序列化概念json工具类就是那个转换字符串的方法调用json静态方法,不需要new。注意事项将对象转换为json后再转换为对象,相当于做了一次深复制。当对象的字符串key属性满足不了需求时,可用map的对象属性作为keymap属性和方法map与数组之间的转换......
  • Mybatis-Plus基本CRUD——通用Mapper
    BaseMapper接口MyBatis-Plus中的基本CRUD在内置的BaseMapper中都已得到了实现,我们可以直接使用,接口如下:/***Mapper继承该接口后,无需编写mapper.xml文件,即可获得CRUD功能*<p>这个Mapper支持id泛型</p>**@authorhubin*@since2016-01-23*/publicinter......
  • springboot集成下,mybatis的mapper代理对象究竟是如何生成的
    springboot集成下,mybatis的mapper代理对象究竟是如何生成的 前情回顾Mybatis源码解析-mapper代理对象的生成,你有想过吗,我们讲到了mybatis操作数据库的流程:先创建SqlSessionFactory,然后创建SqlSession,然后再创建获取mapper代理对象,最后利用mapper代理对象完成数据库......
  • hashmap oop in golang
    packagemainimport("fmt")constHASH_BUCKET_SIZE=3//1023typehash_nodestruct{keyinterface{}valinterface{}next*hash_node}typeHASH_BUCKET[HASH_BUCKET_SIZE]*hash_nodefunchash(keyinterface{})int{h......
  • C++实现一个线程安全的map
    本文是使用ChatCPT生成的,最终的代码使用起来没问题。代码是通过两轮对话完善的,后面把对话合并后跑不出理想效果就没尝试了。第一轮对话请求c++11实现一个线程安全的map,使用方法与std::map保持一致,实现[]运算符回复以下是一个简单的线程安全的map实现,可以使用[]运算符来访问和......