位集限制,如何在 运行 时间在 C++ 中初始化整数?
Bitset limitation, how to initialize integer at run-time in C++?
现在我有这个代码:-
该代码是关于接受一个整数并以给定的位数提供其二进制形式。
#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”,以便在代码中使用在 运行 时输入的值?
我在网上做了一些研究,我知道 bitset 在编译时需要一个值,所以我应该使用 vector 而不是 bitset bool 但我不知道如何将其合并到程序中?
如果你们中的任何人可以告诉我如何使用矢量,或者如果您对如何完成任务有完全不同的理论,请分享。
我也不能使用 boost:dynamic_bitset,因为代码将由可能没有单独的头文件的在线法官来判断。
一个std::bitset
's size must be set at compile time as it is a template parameter. If you need a dynamic bitset you can look at boost:dynamic_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);
}
}
如何使用整数(例如 n)代替“6”,以便在代码中使用在 运行 时输入的值?
我在网上做了一些研究,我知道 bitset 在编译时需要一个值,所以我应该使用 vector 而不是 bitset bool 但我不知道如何将其合并到程序中?
如果你们中的任何人可以告诉我如何使用矢量,或者如果您对如何完成任务有完全不同的理论,请分享。
我也不能使用 boost:dynamic_bitset,因为代码将由可能没有单独的头文件的在线法官来判断。
一个std::bitset
's size must be set at compile time as it is a template parameter. If you need a dynamic bitset you can look at boost:dynamic_bitset