初始化指针向量(自动)

initialize vector of pointers (automatically)

本文关键字:自动 向量 指针 初始化      更新时间:2023-10-16

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

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);

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

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