首页 > 其他分享 >map与set

map与set

时间:2023-03-19 13:45:13浏览次数:44  
标签:map set iterator value bool key

vector

VECTOR

set

https://blog.csdn.net/qq_56067257/article/details/123252972


insert(key_value); 将key_value插入到set中 ,返回值是pair<set<int>::iterator,bool>,bool标志着插入是否成功,而iterator代表插入的位置,若key_value已经在set中,则iterator表示的key_value在set中的位置。)

s.erase(迭代器/值);
s.clear();
set<int>::iterator i;
for(int i=q.begin();i!=q.end();i++)cout<<*i;
set<string>::iterator it_low = st.lower_bound(值);//第一个大于等于va的数
set<string>::iterator it_up = st.upper_bound(值);//第一个大于va的数
升降序建议自写重载运算符(set正着写(与排序一样)!!!!!)
如果set开的结构体,指针为it,那么他的值为it->first,it->second
如果set删除一个指针的话,他就不能用了

multiset

与set一样,不过是可重复集合,一次只删一个元素。

mulitseterase每次删除全部元素。
如果你只想删一个元素的话。可以先找到他的位置,然后删了这个迭代器。

bitset

bitset<1000>p;
相当于开了一个1000位的二进制数,可以进行位运算基本操作
s.count() 返回二进制串中有多少个1;
若s所有位都为0,则s.any()返回false,s.none()返回true;
若s至少有一位为1,则s.any()返回true,s.none()返回false;


s.set()把s所有位变为1;
s.set(k,v)把s的第k位改为v,即s[k]=v;
s.reset()把s的所有位变为0.
s.reset(k)把s的第k位改为0,即s[k]=0;
s.flip()把s所有位取反.即s=~s;
s.flip(k)把s的第k位取反,即s[k]^=1;

map

map用法比较简单。
重载运算符怎么理解?
struct node{
	int a[34];
	bool operator<(const node A)const{
		for(int j=0;j<m;j++)
			if(a[j]!=A.a[j])return a[j]<A.a[j];
		return 0; 
	}
};
map<node,int>mp;
如上,如果两个数定义为相同,应return 0,这样前后都return 0,map才能判断相等。

标签:map,set,iterator,value,bool,key
From: https://www.cnblogs.com/FJOI/p/17232931.html

相关文章

  • Android 将图片网址url转化为bitmap,drawable转bitmap,file转bitmap,bitmap转file,Bitmap
    file转bitmapFileparam=newFile();Bitmapbitmap=BitmapFactory.decodeFile(param.getPath());drawable转bitmapBitmapbmp=BitmapFactory.decodeResource(getR......
  • mapper接口中常见的增删改查
    前言相信大家在使用mybatis写mapper接口的时候,最常用且简单的方法就是增删改查了。我也是刚开始做项目,在本篇文章中,我将根据自己在vhr微人力项目中的mapper接口方法为实......
  • STL容器:map
    1.基本用法:#include<map>需要头文件。map<key_value,int>mp创建一个以key_value类型为数组下标,存储32位整数类型的mapmap[value]数组操作,可以直接修改或查......
  • CentOS docker 搭建nginx访问宿主机端口报错curl: (56) Recv failure: Connection res
    https://www.jianshu.com/p/a21e8e8e54dd 在正常安装docker-ce环境后尝试运行nginx测试docker环境是否正常,结果发现docker容器映射到宿主机的端口无法正常访问报错......
  • 修复Superset中连接Hive表名都相同的问题
    题外话:个人觉得Superset的完成度真的不高,而且python各种新旧依赖真的头痛,官方的文档也查不到,还好基于python好修改问题参考:https://github.com/apache/superset/issues/......
  • TreeMap
    TreeMap是有序map,通过key进行排序1.TreeMap是如何实现去重和排序的?TreeMap实现了SortedMap接口,它是一个key有序的Map类。TreeMap的默认排序规则:根据key元素的compareTo......
  • 1.set atuot 用法
    数据库中setautotrace有哪些用法Usage:SETAUTOT[RACE]{OFF|ON|TRACE[ONLY]}[EXP[LAIN]][STAT[ISTICS]]说明:前三个参数{OFF|ON|TRACE[ONLY]}里必需选......
  • 谈谈ConcurrentHashMap是如何保证线程安全的?
    jdk1.7中是采用Segment+HashEntry+ReentrantLock的方式进行实现的,而1.8中放弃了Segment臃肿的设计,取而代之的是采用Node+CAS+Synchronized来保证并发安全进行实现......
  • List和Set的区别
    Java中的集合包括三大类,它们是Set(集)、List(列表)和Map(映射),它们都处于java.util包中,Set、List和Map都是接口,它们有各自的实现类。Set的实现类主要有HashSet和TreeSet,List的实......
  • List和Set的区别
    Java中的集合包括三大类,它们是Set(集)、List(列表)和Map(映射),它们都处于java.util包中,Set、List和Map都是接口,它们有各自的实现类。Set的实现类主要有HashSet和TreeSet,List的实......