bitset和set总结

bitset

介绍

二进制,只有0 ,1

bitset常用函数

bitset<10>bt;10是个空间
cout<<sizeof(bt)<<‘\n’;不管定义多大,一直都是4;
bt.count()含有多少1
bt.set (4)就是把从右至左第5个数赋为1
bt.reset()所有1,变变为0
bt.flip()0变1,1变0
bt.none()是否有1,有返回0
bt.any()有1,返回1;
bt.test()测试某一位是否为1,是返回1,不是返回0
bitset<11>bt(1234)
cout<<bt<<endl;二进制
bitset<11>bt(“1010101010”);字符串
cout<<bt<<endl;输出和定义的一样
bt.to_ulong()十进制
bt.to_string ()以字符形式输出以字符形式输出
bt=bt1不能大于小于
右移两位比如定义a=10,10的二进制是1010,a=a>>2,右移两位变为10,二进制10十进制等于2
a=~a“~”取反位01010会变为11011最右边的一位其实是表示正负的,0正1负

set

介绍

set从小到大的集合,即无重复元素

其他类型的set

multiset:可以重复,并且有序
unordered_set :元素无序且只能出现一次
unordered_multiset : 元素无序可以出现多次

set常用函数

s.begin() 第一个元素的地址(迭代器)(1)
s.end() 最后一个元素的下一个地址(迭代器)O(1)
s.rbegin() 返回逆序迭代器,指向元素最后一个位置O(1)
s.rend() 返回逆序迭代器,指向第一个元素前面的位置O(1)
s.clear() 删除容器中所有的元素,返回unsigned int类型O(N)
s.empty() 判断set容器是否为空O(1)
s.insert() 插入一个元素
s.size() 返回当前set容器中的元素个数O(1)
erase(iterator) 删除定位器iterator指向的值
erase(first,second) 删除first和second之间的值
erase(key_value) 删除key_value的值
s.find(element) 查找set中的某一元素,有则返回该元素对应的迭代器,无则返回结束迭代器
s.count(element) 查找set中的元素出现的个数,由于set中元素不重复,即查询是否出现
s.lower_bound(k) 返回大于等于k的第一个元素的迭代器O(logN)
s.upper_bound(k) 返回大于k的第一个元素的迭代器O(logN)
  • 迭代器
for(set<int>::iterator it = s.begin(); it != s.end(); it++)
	cout << *it << " ";
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值