我希望能够通过命令行参数传递一个整数,我将调用它。我需要使它保持不变,因为它将用于确定几个位集的大小。我尝试过这么多方法,例如:
int main(int arc, const char* argv[]){
const int * ptr;
if (!(istringstream{argv[1]} >> ptr)) { return 1;}
const int length = *ptr;
bitset<length> right_ones = 1;
return 0;
}
我也是这样试过的:
int main(int arc, const char* argv[]){
int test_int;
if (!(istringstream{argv[1]} >> test_int)) { return 1;}
const int length = argv[1];
bitset<length> right_ones = 1;
return 0;
}
但我尝试过的方式都没有奏效。我怎么能做到这一点?
答案 0 :(得分:4)
如果它将作为命令行参数传递,则不能使其成为常量。
顺便说一句,这与您的案例相关:Define bitset size at initialization?
答案 1 :(得分:2)
在编译时需要bitset的长度,所以无论你如何尝试它,都无法在运行时传递该值。