容器类-bitset类

        一,bitset类容器,定义于头文件<bitset>中,头文件中仅定义了一个类-bitset。它是对二进制数进行存储和操作的类。该类类似于数组的一种数据结构,容器中存储的内容仅包含1与0,而且每一位都只占1bit的存储空间。bitset容器不带有迭代器。

template <size_t N> class bitset; //size_t表示无符号的整数。
//bitset类构造函数:
(1)	
constexpr bitset() noexcept;
(2)	
constexpr bitset (unsigned long long val) noexcept;
(3)string
template <class charT, class traits, class Alloc>  explicit bitset (const basic_string<charT,traits,Alloc>& str,    typename basic_string<charT,traits,Alloc>::size_type pos = 0,    typename basic_string<charT,traits,Alloc>::size_type n =      basic_string<charT,traits,Alloc>::npos,    charT zero = charT('0'), charT one = charT('1'));
(4)c-string	
template <class charT>  explicit bitset (const charT* str,    typename basic_string<charT>::size_type n = basic_string<charT>::npos,    charT zero = charT('0'), charT one = charT('1'));

  eg: bitset<16>foo;//声明了一个bitset类容器对象foo,长度为16位,默认情况下每一位都是0;
eg: bitset<16>foo(0xbf);//声明一个bitset类容器对象foo,对象中的值为0xbf,16>0xbf的长度,剩余长度默认为0;
eg:bitset<n>b(cp,pos,len,0,1);//cp也是字符串string类型或者char * 类型,从pos开始的leng个字符给b,如果len小于n,则剩余位数默认用0表示。且字符串cp中只能有两个取值0和1.
template <class charT> explicit bitset (const charT* str, typename basic_string<charT>::size_type n = basic_string<charT>::npos, charT zero = charT('0'), charT one = charT('1'));
        关于bitset类容器的存储顺序是,先存储进去的数在右侧,后存储进去的数在左侧;bitset<4>foo;foo[0]=1;cout<<foo<<endl; 结果是:0001


        二.bitset类容器的成员函数:
bistset::bool test (size_t pos) const; //判断当前pos位置是否为1;
bitset::bool any();只要bitset中有一位是1,就返回true;

bitset::size_t count() const noexcept;返回bitset中1的个数;

bitset::all():判断所有为是否全都为1,如果是返回true;none():判断所有位是否全部为0,如果是,返回trure。
bitset::bitset& flip() noexcept; bitset& flip (size_t pos);flip函数有两个重载。一个是无参的,默认是将bitset中所有位取反,1变为0,0变为1。一个是指定某个pos位置的取反。两个重载返回的都是*this。eg:: bitset<4>foo(1010);foo.flip(1);foo:1000.
bitset::set(),将某一位设置为1,或者将所有的位设置为1.bitset& set() noexcept; //默认设置所有位;bitset& set (size_t pos, bool val = true);//设置某个pos处的值为1.
bitset::reset();将bitset对象中的所有为设置为0.它的用法与set的用法相同。

bitset::to_string();将bitset类对象转换为string类型;

template <class charT = char,class traits = char_traits<charT>,class Alloc = allocator<charT>>  basic_string<charT,traits,Alloc> to_string (charT zero = charT('0'),                                              charT one  = charT('1')) const;//该函数使用模板定义返回值的类型,默认的是string类型.
//*********************************************************************************
unsigned bitset::long to_ulong() const;
unsigned bitset::long to_ullong() const;//以上两个函数是将bitset类对象转换为无符号long或者无符号的long long类型。
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值