我想在函数末尾返回一个空向量。 以下所有是否等同?如何理解它们中的每一个?
return vector<int>();
return vector<int>{};
return NULL;
以下是我的理解:
1。vector<int>()
意味着创建一个空的矢量对象,该对象未初始化,因此为NULL。
2。vector<int>{}
意味着创建一个大小为0的空向量。
大小0和NULL之间有区别吗? 非常感谢〜
答案 0 :(得分:5)
前两个都在做value initialization,并且是相同的。
NULL
是空 pointers 的旧的向后兼容符号常量。 C ++没有“空”值的概念。除非您返回一个指针,否则它是无效的。
关于NULL
,在C ++ 11标准之前的C ++中,您实际上应该将0
用于空指针。而且自C ++ 11标准以来,您应该使用nullptr
文字。