3

尝试NULL通过std::vector构造函数初始化指针向量时遇到编译错误。我简化了指令以使其简单:

vector<int*> v (100,NULL)

const T& value= T()我想这与(构造函数的参数)和非常值 NULL之间的不兼容有关,但我希望得到进一步的解释。

谢谢

4

2 回答 2

6

如果你有相关的 C++11 支持,你可以使用nullptr

std::vector<int*> v(100, nullptr);

但是,在您的特定情况下,无需指定默认值,因此以下内容就足够了:

std::vector<int*> v(100);
于 2012-06-09T12:11:49.423 回答
1

NULL很可能被定义为0,所以你最终得到

vector<int*> v(100,0);

它试图构建 s 的向量int,而不是int*s 的向量。

只需跳过 NULL,因为这是指针的默认值,或者将其转换为正确的指针类型(int*)NULL

于 2012-06-09T11:42:13.853 回答