C++ 将向量设置为{};

C++ 将向量设置为{};,c++,c++11,vector,variable-assignment,initializer-list,C++,C++11,Vector,Variable Assignment,Initializer List,以下代码始终有效还是依赖于编译器/平台?显然,我可以使用值构造函数初始化边,但我很好奇,当边被初始化为大小0,然后设置为大括号的r值时,复制赋值操作符=在这里是否有效 它在我的macbook上工作 std::vector<std::vector<int>> edges; edges = {{1,2,3},{4},{5,6}}; std::向量边; 边={1,2,3},{4},{5,6}; 它是有效的(从C++11开始)std::vector具有重载的takingstd:

以下代码始终有效还是依赖于编译器/平台?显然,我可以使用值构造函数初始化
,但我很好奇,当
被初始化为大小0,然后设置为大括号的r值时,复制赋值
操作符=
在这里是否有效

它在我的macbook上工作

std::vector<std::vector<int>> edges;
edges = {{1,2,3},{4},{5,6}};
std::向量边;
边={1,2,3},{4},{5,6};
它是有效的(从C++11开始)
std::vector
具有重载的taking
std::initializer\u list

将内容替换为初始值设定项列表
ilist
标识的内容

可以在指定的上下文中从大括号列表构造

(强调矿山)

在以下情况下,将自动构造
std::initializer\u list
对象:

  • 大括号的init列表用于对象,其中相应的构造函数接受
    std::initializer\u list
    参数
  • 大括号的init列表用作或的右操作数以及相应的赋值 操作员/函数接受
    std::initializer\u列表
    参数
  • 大括号的init列表绑定到,包括

你在担心什么<代码> STD::vector < /COD>有一个“代码> STD::IngaliSeriSList。@ C++中的宋元瑶,用卷轴括起来的东西列表总是等同于STD::IngalIZELSILL列表吗?不总是这样。当传递带括号的列表时,使用std::initializer_list的函数将是首选。哦,我明白了。我想我的问题是因为我不确定
edges=
的右侧是否默认为std::initializer\u列表。