Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在标准C+中创建动态位集+;?_C++_Vector_Boolean_Bitset - Fatal编程技术网

C++ 在标准C+中创建动态位集+;?

C++ 在标准C+中创建动态位集+;?,c++,vector,boolean,bitset,C++,Vector,Boolean,Bitset,我觉得我只是希望他们可以,但是向量可以访问位集成员函数吗 例如,我可以做类似的事情 vector<bool> myvector; myvector.count(); myvector.test(1); 向量myvector; myvector.count(); myvector.test(1); 如果不使用标准的C++库,动态地创建一个位集? 编辑: 我想使用某些位集函数(test、count)并想使用构造函数位集(unsigned long val) 基本上,我想为一些任意的v

我觉得我只是希望他们可以,但是向量可以访问位集成员函数吗

例如,我可以做类似的事情

vector<bool> myvector;
myvector.count();
myvector.test(1);
向量myvector;
myvector.count();
myvector.test(1);

如果不使用标准的C++库,动态地创建一个位集?

编辑:

我想使用某些位集函数(test、count)并想使用构造函数
位集(unsigned long val)

基本上,我想为一些任意的
val
创建一个位集,然后对test和count执行一些操作。然后我想取消分配并重新创建具有递减val的位集。我想继续这样做,直到val小于8


但是,似乎不可能创建动态位集,而使用动态向量意味着我可以使用一些不错的位集函数。

听起来您实际上并不需要动态位集<代码>标准::位集是可复制分配的,因此您可以执行以下操作:

const size_t size = sizeof(unsigned long) * CHAR_BIT;
typedef std::bitset<size> my_bitset;

unsigned long val = 42;
my_bitset bs(val);

/* do work */

bs = my_bitset(--val); // assign with new, decremented val
const size\u t size=sizeof(无符号长)*字符位;
typedef std::位集my_位集;
无符号长val=42;
my_位集bs(val);
/*工作*/
bs=我的位集(--val);//用新的、递减的val赋值

我已经在S.O.中回答了类似的问题。我建议,一个专门面向快速位扫描的动态位集框架。它已经在Linux和Windows上进行了测试。可以与STL位集和Boost的动态位集进行比较。

向量测试(1)应该做什么?你为什么不试试呢,嗯?:)提示:不,不行。是的,我试过了。。。但我真的很想相信你可以:(该死!你为什么需要它来支持
::std::bitset
操作?这个问题有一个简短的简单答案,对人们没有多大帮助。但是,回答导致你想要
::std::vector
来支持它没有的操作的相关问题可能会有趣得多。@moesef你为什么不实现你自己去计数并不难。而且,
bitset::test
做的事情与
vector::at
做的事情相同,因此没有任何工作要做。这不是动态的。
size
在编译时是已知的。