不知哪位兄台用过bit_vector容器,书上说bit_vector和vector是同用一个头文件,即#include<vector>.但是我在vc2008中加入了该头文件,但是在编译时显示bit_vector这种数据类型是未申明的标识符,我在vc6.0也试了一下,也识别不了这种向量型序列容器。不知哪位兄台用过,请教一下!!

解决方案 »

  1.   

    vector<bool> bit_vector;?vector对bool类型进行了特化~~我没用过。
      

  2.   


    typedef unsigned int _Vbase;
    const int _VBITS = CHAR_BIT * sizeof (_Vbase);
    typedef allocator<_Vbase> _Bool_allocator;
    class vector<_Bool, _Bool_allocator> {
    public:
    //...略
    };
    typedef vector<_Bool, _Bool_allocator> _Bvector;
      

  3.   

    sgi版stl的东西
    就是vector<bool>
      

  4.   

    也可以用vector<bool>实现,但是bit_vector用的内存更小,他每个数据都只用一位!!我在vc6.0和vc2008上都识别不了这个容器!
      

  5.   

    会不会是缺少:using namespace std;
      

  6.   

    VC6要用的话包括头文件vector后,就可以用了:
    std::_Bvector bv(10,true);
    bv.push_back(false);
    bv.push_back(true);
    bv[2]=bv[10];
    cout<<typeid(bv[0]).name()<<'\n';
    cout<<typeid(bv.begin()).name()<<'\n';
    cout<<typeid(*(bv.begin())).name()<<'\n';
      

  7.   

    回复Longerandlonger:那个我加了的
      

  8.   

    回复Longerandlonger:那个我加了的
      

  9.   

    回复hastings:哦,是这样啊,我直接用bit_vector来定义,怪不得识别不了!!我试试看!!
      

  10.   

    我加了#include<vector>后还是不好使!