可以用变量指定大小的Bits对象实现

    添加时间:2013-7-17 点击量:

    c++的容器中有位对象bitset,然则小我认为大题目是定义是必须指定常数大小,比如


    bitset<3> bit;


     无法实现


    int n = 3;


    bitset<n> bit;


    所以我本身查了一些材料,实现了能用变量定义的Bits


    class Bits
    {
    public:
    Bits(int numOfBits);
    virtual ~Bits();
    bool Set(int arg);
    bool Clr(int arg);
    bool Test(int arg);


    class BitsProxy
    {


    。。。。。


    };


    const BitsProxy operator[](int index) const;
    BitsProxy operator[](int index);


    friend class BitsProxy;



    protected:
    private:
    int m_pBits;
    static int mask;
    int numOfBits;


    };


    既可以读取也可以赋值响应位的值。比如:


    std::cout<<bit[3]<<std::endl;//bit是一个Bits对象 


    bit[3] = 1;


    完全代码在https://github.com/qingzew/Bits

    彼此相爱,却不要让爱成了束缚:不如让它成为涌动的大海,两岸乃是你们的灵魂。互斟满杯,却不要同饮一杯。相赠面包,却不要共食一个。一起歌舞欢喜,却依然各自独立,相互交心,却不是让对方收藏。因为唯有生命之手,方能收容你们的心。站在一起却不要过于靠近。—— 纪伯伦《先知》
    分享到: