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

Lus*_* Li 0 c++ vector

我想在函数结束时返回一个空向量.以下是否完全相同?如何理解他们每个人?

return vector<int>();
return vector<int>{};
return NULL;
Run Code Online (Sandbox Code Playgroud)

以下是我的理解:

1. vector<int>()表示创建一个空的矢量对象,它是未初始化的,因此它是NULL.

2. vector<int>{}表示创建一个大小为0的空向量.

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

Som*_*ude 5

前两个都在进行值初始化,并且是相同的.

NULL是空指针的旧向后兼容符号常量.C++没有"null"值的概念.除非你返回一个指针,否则它是无效的.


关于NULL,在C++ 11标准之前的C++中,你应该真的0用于空指针.从C++ 11标准开始,您应该使用nullptr文字.