定义位集合的大小我有一个类使用模板
template <class MAX>
class A
{
std::bitset<MAX> _mem ;
}
这个类的目的,是让我可以具有可变长度位集。用于我的程序的不同部分。
但铛完全给我的错误
template argument for non type template parameter should be an expression
定义位集合的大小我有一个类使用模板
template <class MAX>
class A
{
std::bitset<MAX> _mem ;
}
这个类的目的,是让我可以具有可变长度位集。用于我的程序的不同部分。
但铛完全给我的错误
template argument for non type template parameter should be an expression
的bitset
模板期望一个恒定的积分表达式,不是一个类型。试试这个:
template < size_t MAX >
class A { std::bitset<MAX> _mem; };
目前尚不清楚你想在这里实现什么,而是因为std::bitset
的大小是一个整数,你需要通过某种形式的整数:
template <size_t MAX>
class A {
std::bitset<MAX> _mem;
};
对于一般情况下,可变长度的位集,您可能需要考虑诸如Boost dynamic_bitset
之类的内容,而不是重新创建这个特定的轮子。对于某些目的,std::vector<bool>
是一个值得选择的(尽管它不是一个真正的容器,尽管名称并不像其他类型的vector
s很像。
不会比较小我有超过100万个元素,每个元素都有一个500的集合。所以使用std :: vector
@nnrales:其实,人们不喜欢'std ::矢量
我在想整数是一种类型。 – nnrales
'int'是一个类型* An * int是一个对象......除非它是一个常量表达式,然后它可能永远不会成为一个对象(一个对象是内存中的东西) –