初始化指针向量(自动)

时间:2012-06-09 11:13:10

标签: c++ pointers null stdvector

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

vector<int*> v (100,NULL)

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

谢谢

2 个答案:

答案 0 :(得分:5)

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

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

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

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

答案 1 :(得分:0)

NULL可能定义为0,因此您最终会使用

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

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

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