vector <int>()vs vector <int> {} vs NULL vs size = 0有什么区别?

时间:2018-07-12 13:54:32

标签: c++ vector

我想在函数末尾返回一个空向量。 以下所有是否等同?如何理解它们中的每一个?

return vector<int>();
return vector<int>{};
return NULL;

以下是我的理解:

1。vector<int>()意味着创建一个空的矢量对象,该对象未初始化,因此为NULL。

2。vector<int>{}意味着创建一个大小为0的空向量。

大小0和NULL之间有区别吗? 非常感谢〜

1 个答案:

答案 0 :(得分:5)

前两个都在做value initialization,并且是相同的。

NULL是空 pointers 的旧的向后兼容符号常量。 C ++没有“空”值的概念。除非您返回一个指针,否则它是无效的。


关于NULL,在C ++ 11标准之前的C ++中,您实际上应该将0用于空指针。而且自C ++ 11标准以来,您应该使用nullptr文字。