初始化指针的矢量(自动地)(initialize vector of pointers (autom

2019-09-17 23:08发布

试图指针的初始化向量当我遇到一个编译错误NULL被方式std::vector构造函数。 我精简指令保持简单:

vector<int*> v (100,NULL)

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

谢谢

Answer 1:

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

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

然而,在您的特定情况下,没有必要指定一个默认值,所以下面就足够了:

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


Answer 2:

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

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

它试图建立的向量int的不发, int*秒。

刚刚跳过NULL,因为这是默认的指针,无论如何,或将其转换为正确的指针类型(int*)NULL



文章来源: initialize vector of pointers (automatically)