试图指针的初始化向量当我遇到一个编译错误NULL
被方式std::vector
构造函数。 我精简指令保持简单:
vector<int*> v (100,NULL)
我猜它是与之间的不兼容const T& value= T()
构造函数的参数)和非常NULL值,但我希望得到一些进一步的解释。
谢谢
试图指针的初始化向量当我遇到一个编译错误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);
它试图建立的向量int
的不发, int*
秒。
刚刚跳过NULL,因为这是默认的指针,无论如何,或将其转换为正确的指针类型(int*)NULL
。