尝试NULL
通过std::vector
构造函数初始化指针向量时遇到编译错误。我简化了指令以使其简单:
vector<int*> v (100,NULL)
const T& value= T()
我想这与(构造函数的参数)和非常值 NULL之间的不兼容有关,但我希望得到进一步的解释。
谢谢
如果你有相关的 C++11 支持,你可以使用nullptr
:
std::vector<int*> v(100, nullptr);
但是,在您的特定情况下,无需指定默认值,因此以下内容就足够了:
std::vector<int*> v(100);
NULL
很可能被定义为0
,所以你最终得到
vector<int*> v(100,0);
它试图构建 s 的向量int
,而不是int*
s 的向量。
只需跳过 NULL,因为这是指针的默认值,或者将其转换为正确的指针类型(int*)NULL
。