Bitset的一些总结

Bitset 是一个特殊的容器类,它被设计用来存储bit(即 只有两个值的元素:0 或1,true 或 false ,...)。这个类和常规的数组很像,但是优化了存储空间:每个元素只占用一个bit(比C++中最小的类型:char 小了8倍)。每个元素(每个 bit)可以独立存取:比如,一个名为mybitset 的bitset,表达式 mybitset[3] 访问它的第四个bit,就像访问常规数组的元素那样。由于在C++中没有这么小的类型,每个元素要通过特殊的参考来访问,它模仿bool 类型。

     bitset中的reference:

    class bitset::reference {

          friend class bitset; reference(); // no public constructor

          public: ~reference();

          operator bool () const; // convert to bool

          reference& operator= ( bool x ); // assign from bool

          reference& operator= ( const reference& x ); // assign from bit

          reference& flip(); // flip bit value

          bool operator~() const; // return inverse value

 }

除了一些重载的运算符,提供直接访问bit,由整数和二进制串构造。Bitset也可以直接从流中以二进制的形式添加。 Bitset有固定的大小,所以它不支持插入和删除元素。 如果果不在乎没有迭代器和动态改变大小,bitset非常实用。 vector有着和Bitset类似的功能,但是vector却不是一个stl容器。还有一个是deque,它是标准 stl容器,有一个缺点是不能生产c类型的bool数组。因为deque是链表实现的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值