j***i 发帖数: 1278 | 1 在函数里面用bitset
func(int n)
{bitset b;}// 编译不过a local variable cannot be used as a
//non-type argument
如何实现这个? |
X****r 发帖数: 3557 | 2 vector
【在 j***i 的大作中提到】 : 在函数里面用bitset : func(int n) : {bitset b;}// 编译不过a local variable cannot be used as a : //non-type argument : 如何实现这个?
|
S**I 发帖数: 15689 | 3 template
func()
{bitset b;}
or simply use vector instead.
【在 j***i 的大作中提到】 : 在函数里面用bitset : func(int n) : {bitset b;}// 编译不过a local variable cannot be used as a : //non-type argument : 如何实现这个?
|
j***i 发帖数: 1278 | 4 effective stl 说了不要用vector bool
而且我想用整数直接得到对应bitset, 这个也不支持
【在 X****r 的大作中提到】 : vector : :
|
l******e 发帖数: 12192 | 5 那是说不要瞎用
【在 j***i 的大作中提到】 : effective stl 说了不要用vector bool : 而且我想用整数直接得到对应bitset, 这个也不支持
|
j***i 发帖数: 1278 | 6 用这个template
我还是不能用变量call
func<4>()可以
int n=4;
func(n)()不行丫
【在 S**I 的大作中提到】 : template : func() : {bitset b;} : or simply use vector instead. : :
|
X****r 发帖数: 3557 | 7
你看了他说为什么不要了吗?
这个是什么意思?
【在 j***i 的大作中提到】 : 用这个template : 我还是不能用变量call : func<4>()可以 : int n=4; : func(n)()不行丫
|
j***i 发帖数: 1278 | 8 用模板还是解决不了我的问题
还是不可以用
func()call
只能yong
func<4>() 结果还是没有达到变位数
【在 S**I 的大作中提到】 : template : func() : {bitset b;} : or simply use vector instead. : :
|
j***i 发帖数: 1278 | 9 就是
bitset<4>a(12)
【在 X****r 的大作中提到】 : : 你看了他说为什么不要了吗? : 这个是什么意思?
|
S**I 发帖数: 15689 | 10 const int n=4;
【在 j***i 的大作中提到】 : 用这个template : 我还是不能用变量call : func<4>()可以 : int n=4; : func(n)()不行丫
|
|
|
j***i 发帖数: 1278 | 11 但是
如果
n=func1()
又不行了,ms 必须是编译器可以决定的常量才可以
【在 S**I 的大作中提到】 : const int n=4;
|
X****r 发帖数: 3557 | 12 如果你要用整数的话是不是意味着不超过32或64位?
要是这样的话直接用bitset<32>或bitset<64>不就完了。
【在 j***i 的大作中提到】 : 就是 : bitset<4>a(12)
|
e*l 发帖数: 37 | 13 但是你可以使用deque,这个满足标准容器的要求,而且存储是真正的bool类型
bitset的大小是编译期常量,不能动态指定,且不是标准容器
【在 j***i 的大作中提到】 : 但是 : 如果 : n=func1() : 又不行了,ms 必须是编译器可以决定的常量才可以
|
z****e 发帖数: 2024 | 14 这个应该还是不行吧。
因为lz要动态决定。
【在 S**I 的大作中提到】 : template : func() : {bitset b;} : or simply use vector instead. : :
|
z****e 发帖数: 2024 | 15 如果你一定要用 bitset的话,我感觉是不可能动态决定的。
因为bitset是一个类型。
【在 j***i 的大作中提到】 : 在函数里面用bitset : func(int n) : {bitset b;}// 编译不过a local variable cannot be used as a : //non-type argument : 如何实现这个?
|
e*l 发帖数: 37 | 16 如果你一定要使用bitset, 可以考虑boost库里的dynamic_bitset
http://www.boost.org/doc/libs/1_43_0/libs/dynamic_bitset/dynamic_bitset.html
这个是对标准库的bitset的扩展,可以动态指定大小,应该满足你的要求.
【在 j***i 的大作中提到】 : 但是 : 如果 : n=func1() : 又不行了,ms 必须是编译器可以决定的常量才可以
|
z****e 发帖数: 2024 | 17 赞一个。
【在 e*l 的大作中提到】 : 如果你一定要使用bitset, 可以考虑boost库里的dynamic_bitset : http://www.boost.org/doc/libs/1_43_0/libs/dynamic_bitset/dynamic_bitset.html : 这个是对标准库的bitset的扩展,可以动态指定大小,应该满足你的要求.
|
j***i 发帖数: 1278 | 18 谢谢各位大虾指点
【在 e*l 的大作中提到】 : 如果你一定要使用bitset, 可以考虑boost库里的dynamic_bitset : http://www.boost.org/doc/libs/1_43_0/libs/dynamic_bitset/dynamic_bitset.html : 这个是对标准库的bitset的扩展,可以动态指定大小,应该满足你的要求.
|
M**u 发帖数: 10158 | 19 vector
【在 j***i 的大作中提到】 : 在函数里面用bitset : func(int n) : {bitset b;}// 编译不过a local variable cannot be used as a : //non-type argument : 如何实现这个?
|