gpt4 book ai didi

c++ - 为什么不能使用嵌套的初始化程序列表初始化std::array ,3>,但是std::vector >可以初始化?

转载 作者:行者123 更新时间:2023-12-03 07:35:48 28 4
gpt4 key购买 nike

请参见以下示例:https://godbolt.org/z/5PqYWP
为什么不能以与 vector 对相同的方式初始化该对数组?

#include <vector>
#include <array>

int main()
{
std::vector<std::pair<int,int>> v{{1,2},{3,4},{5,6}}; // succeeds
std::array <std::pair<int,int>, 3> a{{1,2},{3,4},{5,6}}; // fails to compile
}

最佳答案

您需要添加一对大括号来初始化std::array<...>对象本身:

std::array <std::pair<int,int>, 3> a{{{1,2},{3,4},{5,6}}};
最外面的对用于数组对象,第二对用于对象内部的聚合数组。然后是数组中的元素列表。

关于c++ - 为什么不能使用嵌套的初始化程序列表初始化std::array <std::pair <int,int>,3>,但是std::vector <std::pair <int,int >>可以初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65198011/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com