首页 > 其他分享 >map

map

时间:2024-02-04 17:24:32浏览次数:30  
标签:map 10 int ++ mapmp mp mp1

`

include<bits/stdc++.h>

using namespace std;
int n;
map<int,int>mp;
int main(){
cin >> n;
vectorv(n);
for(int i=0;i<n;i++){
cin >> v[i];
mp[v[i]]++;
}
int count=0;
for(int i=0;i<n;i++){
v[i]+=9;
mp[v[i]]++;
if(mp[v[i]]!=1) count++;
}
cout << n-count;
return 0;
}
`
map是C++STL的一个容器,提供一对一的映射关系
第一个称为关键字“key”,别名是first
第二个称为关键字的价值“value”,别名是second
map<int,int>mp;
map<string,string>mp;
map<char,int>mp;
map<int,string>mp;
map<float,int>mp;
map<double,long>mp;
map<person,int>mp;

map使用:
1.
map<char,int>mp; mp.insert('a',1); mp.insert('b',1); mp['a']++; mp['c']++;
2.插入元素
map<int,string>mp; 方式一:用insert函数插入一个pair mp.insert(pair<int,string>(0,"zhangsan")); 方式二:用insert函数插入value_type数据 mp.insert(map<int,string>::value_type(1,"lisi")); 方式三:用类似数组的方式增加元素(!!!key是int或类似int;不等于数组,key可以为负数) mp[123]="wangwu";
3.查找元素
find()返回一个迭代器,指向查找的元素,找不到则返回map::end()位置(NULL)
`
intr=mp.find(123);
if(iter!=mp.end())
cout << "found,the value is" << iter->second;
else
cout << "not found";

如果关键字是整型,也可以通过名片[1]读取关键字1对应的价值
`

4。几种引用方法
`
1)
map<int,int>mp1;
int sum=0;
mp1[10]=3;
sum+=mp1[10];
\sum累加后变为103

2)
map<int,int>mp1;
int sum=100;
sum+=mp1[10];
\mp1不存在key为10,所以mp1返回值为0,sum累加后仍为100

3)
map<int,int>mp1;
mp1[10]=3;
mp1[10]++;
\mp1[10]变为4

map<int,int>mp1;
mp1[20[++;
\mp1增加一个元素<20,1>

`

标签:map,10,int,++,mapmp,mp,mp1
From: https://www.cnblogs.com/CXfang10/p/18006610

相关文章

  • 《数据篇》Map
    遍历Map的四种方法链接:https://blog.csdn.net/qq_19314763/article/details/79049070importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;importjava.util.Map.Entry;importjava.util.Set;publicclassMapTest{ publicstaticvoidmain(Stri......
  • Collectors.toMap的暗坑与避免方式
    使用Java的stream中的Collectors可以很方便地做容器间的转换,可以少写很多代码。但是其中有暗含的坑需要注意和避免,本文探讨Collectors.toMap(JDK8版本)。Collectors.toMap可以将一个流转化成Map,常见于需要将List转换成Map以便于进一步操作的场景,比如在通过RPC接口获取一个返回结果......
  • ConcurrentHashMap
    ConcurrentHashMap1.8之前提供了⼀种粒度更细的加锁机制来实现在多线程下更⾼的性能,这种机制叫分段锁(LockStriping)。提供的优点是:在并发环境下将实现更⾼的吞吐量,⽽在单线程环境下只损失⾮常⼩的性能。可以这样理解分段锁,就是将数据分段,对每⼀段数据分配⼀把锁。当⼀个线程......
  • Mybatis之resultMap详解
    resultMap作用是处理数据表中字段与java实体类中属性的映射关系。准备工作①创建数据库&数据表CREATEDATABASE`dbtest1`;CREATETABLE`t_emp`(`emp_id`intNOTNULLAUTO_INCREMENT,`emp_name`varchar(20)DEFAULTNULL,`age`intDEFAULTNULL,`gender`......
  • Java 中的Map集合
    Map1.Map接口中常用的方法importjava.util.Collection;importjava.util.HashMap;importjava.util.Map;/*java.util.Map接口中常用的方法:Map和Collection没有继承关系Map集合以key和value的方式存储数据:键值对key和value都是引用数据类型key和value都是存储对象的地......
  • 使用annotationForMap实例化注解
    sun.reflect.annotation.AnnotationParser#annotationForMap/***Returnsanannotationofthegiventypebackedbythegiven*member->valuemap.*/publicstaticAnnotationannotationForMap(finalClass<?extendsAnnotation>......
  • @MappedSuperclass用法,主要用于JPA基类(超类)的定义
    @MappedSuperclass 是JavaPersistenceAPI(JPA)中的一个注解,用于指示某个类是一个映射的超类(MappedSuperclass)。映射的超类类似于普通的Java类,但它不会被映射到数据库表,而是作为其他实体类的基类,用于共享字段和方法。当你在JPA中定义一个实体类的时候,可以使用 @Entity ......
  • ConcurrentHashMap的线程安全
    ConcurrentHashMap是怎么做到线程安全的?   get方法如何线程安全地获取key、value?   put方法如何线程安全地设置key、value?   size方法如果线程安全地获取容器容量?   底层数据结构扩容时如果保证线程安全?   初始化数据结构时如果保证线程安全?ConcurrentHashMap......
  • concurrent hashmap put操作的线程安全
     减小锁粒度:将Node链表的头节点作为锁,若在默认大小16情况下,将有16把锁,大大减小了锁竞争(上下文切换),就像开头所说,将串行的部分最大化缩小,在理想情况下线程的put操作都为并行操作。同时直接锁住头节点,保证了线程安全Unsafe的getObjectVolatile方法:此方法确保获取到的值为最新  ......
  • ConcurrentHashMap是如何实现线程安全的
     但是又为何需要学习ConcurrentHashMap?用不就完事了?我认为学习其源码有两个好处:更灵活的运用ConcurrentHashMap欣赏并发编程大师DougLea的作品,源码中有很多值得我们学习的并发思想,要意识到,线程安全不仅仅只是加锁ConcurrentHashMap是怎么做到线程安全的?   get方法如何线......