自学内容网 自学内容网

bitset和set总结

#bitset
##介绍
二进制,只有0 ,1
##bitset常用函数

bitset<10>bt;
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从小到大的集合,即无重复元素
###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 << " ";

原文地址:https://blog.csdn.net/2301_80805258/article/details/140588447

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!