尝试通过NULL
构造函数初始化指向std::vector
的指针向量时遇到编译错误。我简化了说明以保持简单:
vector<int*> v (100,NULL)
我想这与const T& value= T()
(构造函数的参数)和非常值NULL之间的不兼容有关,但我希望进一步解释。
谢谢
答案 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
。