代码之家  ›  专栏  ›  技术社区  ›  Lusha Li

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

  •  0
  • Lusha Li  · 技术社区  · 6 年前

    我想在函数的末尾返回一个空向量。 下列各项都相等吗?如何理解它们?

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

    以下是我的理解:

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

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

    大小0和空有区别吗? 非常感谢~

    1 回复  |  直到 6 年前
        1
  •  5
  •   Jarod42    6 年前

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

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


    关于 无效的 ,在C++之前的C++ 11标准中,你应该真正使用 0 对于空指针。而且由于C++ 11标准,你应该使用 nullptr 字面意义的。