为什么初始化 std::vector 时不能使用模板整数?
Why can't I use a template integer when initializing a std::vector?
我正在尝试创建一个包含 D 元素的 std::vector 的类 BigInt。
template<int D>
class BigInt
{
public:
std::vector<short> digit(D, 0);
};
我收到一个错误,指出"D"不是一种类型
问题是默认成员初始值设定项(自 C++11 以来(仅支持等号(或大括号(初始值设定项,但不支持 括号初始值设定项。
您可以
template<int D>
class BigInt
{
public:
std::vector<short> digit = std::vector<short>(D, 0);
};
还可以在构造函数中使用成员初始值设定项列表,而不是默认成员初始值设定项。
template<int D>
class BigInt
{
public:
std::vector<short> digit;
BigInt() : digit(D, 0) {}
};
顺便说一句:std::vector<short>(D, 0)
与std::vector<short>(D)
具有相同的效果;为了方便起见,您可以使用后者。
相关文章:
- 为什么初始化 std::vector 时不能使用模板整数?
- 为什么此指针值不能转换为整数的规则是什么?
- 不能将字符转换为整数吗?
- 为什么我们不能将使用异或运算找到的整数转换为字符?
- 16 位系统中的程序如何访问大于 65535 的整数,但不能访问地址
- 为什么我们不能使用整数到字符串直接转换,但可以按位到字符串?
- C ++枚举可以与整数进行比较,但不能从整数分配?
- 为什么我的整数不能传输到数组?
- 为什么可以将Char指针变量初始化为字符串,而INT指针变量不能初始化到整数数组
- 不能在 c++ 中的字符串中包含整数
- C++,为什么我不能使用两个默认随机引擎生成独立的随机整数样本
- 为什么我不能将这些整数打包在一起?
- 使用boost multiprecision/mpfr float-字符串不能被解释为有效的整数错误
- 为什么我们不能使用整数指针声明一个数字数组
- 不能在一行中输入 (cin) 超过 10 个整数,以空格分隔到数组中
- 模板的整数:不能出现在常量表达式中
- 为什么size_t不能直接与负整数进行比较?
- 为什么我的C++算法不能处理超过 62 位的整数?
- 一个整数既不能是非负的也不能是非正的
- N个整数与K对数字有多少个不能相邻的排列?