C++ 什么';s矢量之间的差异<;int>;()与向量<;int>;{}vs NULL vs size=0?

C++ 什么';s矢量之间的差异<;int>;()与向量<;int>;{}vs NULL vs size=0?,c++,vector,C++,Vector,我想在函数末尾返回一个空向量。 以下各项是否等同?如何理解它们 return vector<int>(); return vector<int>{}; return NULL; 返回向量(); 返回向量{}; 返回NULL; 以下是我的理解: 1.vector()表示创建未初始化的空向量对象,因此为空 2.vector{}表示创建一个大小为0的空向量 大小0和NULL之间是否存在差异? 非常感谢~前两个都在做,而且都一样 NULL是空指针的旧向后兼容符号常量。C++没

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

return vector<int>();
return vector<int>{};
return NULL;
返回向量();
返回向量{};
返回NULL;
以下是我的理解:

1.
vector()
表示创建未初始化的空向量对象,因此为空

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

大小0和NULL之间是否存在差异?
非常感谢~

前两个都在做,而且都一样

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



<>关于<代码> null <代码>,在C++之前C++ 11标准中,你应该真的使用代码> 0 < /CONT>空指针。由于是C++11标准,您应该使用文本。

前两个都在使用,并且是相同的

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




<>关于<代码> null <代码>,在C++之前C++ 11标准中,你应该真的使用代码> 0 < /CONT>空指针。由于C++11标准,您应该使用文本。

NULL
std::vector
没有任何关系。函数返回的是什么类型?
vector()
未统一。在这里调用默认构造函数。C++不是java,你不能<代码>返回null <代码>代替任何对象。根据你的实现,试图返回<代码> null <代码>代替向量,可以找到<代码>显式的STD::vector::vector(STD::SiZeHT)< /C> >弗兰Cou-OIS and Reunx,返回类型是vector@LushaLi然后
返回NULL不应编译。与其他语言不同,C++中的对象不隐式支持空状态。<代码> null <代码>与<代码> STD::vector < /代码>无关。函数返回的是什么类型?
vector()
未统一。在这里调用默认构造函数。C++不是java,你不能<代码>返回null <代码>代替任何对象。根据你的实现,试图返回<代码> null <代码>代替向量,可以找到<代码>显式的STD::vector::vector(STD::SiZeHT)< /C> >弗兰Cou-OIS and Reunx,返回类型是vector@LushaLi然后
返回NULL不应编译。与其他一些语言不同,C++中的对象不隐式支持空状态。括号语法具有不必担心的优点,但括号和括号都是括号的两种类型。你是说大括号语法,对吧?我是说括号没用braces@Tyker在这种情况下没有歧义。你的意思是大括号和括号之间没有区别吗?括号语法的优点是不必担心,但大括号和括号都是括号类型。你是说大括号语法,对吧?我是说括号没用braces@Tyker在这种情况下,没有歧义。你的意思是大括号和大括号之间没有区别吗?