比特集限制,如何在C ++中运行时初始化整数?

时间:2015-07-31 12:25:36

标签: c++ bitset

现在我有了这段代码: -

代码是关于获取整数并以给定的位数提供其二进制形式。

#include <iostream>
#include <bitset>
using namespace std;

int main(){

    //creating instance using bitset (6 bit). here you can specify the  length such as  8,16,32,64...
    int n=5;
    bitset< 6 > btFlaged;

    //assigning integer value to instance
    btFlaged = 7;

   //print bit string in the string
   for(int i=btFlaged.size()-1;i>-1;i--)
   {
     cout <<btFlaged.test(i);
   }

} 

如何在'6'的位置使用整数(例如n),以便在代码中使用在运行时输入的值?

我在网上做了一些研究,我知道bitset在编译时需要一个值,所以我应该使用 vector bool 而不是 vector bool 但是我我不知道如何将其纳入该计划?

如果你们中的任何人可以告诉我如何使用矢量,或者如果你对如何完成任务有一个完全不同的理论,请分享。
另外我不能使用boost:dynamic_bitset,因为代码将由一个在线判断者判断,该判断者可能没有单独的头文件。

1 个答案:

答案 0 :(得分:1)

std::bitset的大小必须在编译时设置,因为它是模板参数。如果您需要动态位集,可以查看boost:dynamic_bitset