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

Bitset limitation, how to initialize integer at run-time in C++?

本文关键字:C++ 运行时 初始化 整数      更新时间:2023-10-16

现在我有了以下代码:-

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

#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);
   }
} 

如何使用整数(例如n(代替"6",以便在运行时输入的值可以在代码中使用?

我在网上做了一些研究,我知道比特集在编译时需要一个值,所以我应该使用向量bool而不是比特集,但我不知道我应该如何将其纳入程序中?

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

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