定義位集合的大小我有一個類使用模板
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是一個對象......除非它是一個常量表達式,然後它可能永遠不會成爲一個對象(一個對象是內存中的東西) –