现在的位置: 首页 > 综合 > 正文

Bitset的一些总结

2013年03月21日 ⁄ 综合 ⁄ 共 832字 ⁄ 字号 评论关闭

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是链表实现的。

抱歉!评论已关闭.