【发布时间】:2020-12-02 16:56:19
【问题描述】:
使用向量的向量,我可以这样做:
std::vector<std::vector<int>> vov;
vov.emplace_back(std::initializer_list<int>{0, 0});
但是,对于 std::array 的向量,等效失败:
std::vector<std::array<int, 2>> voa;
voa.emplace_back(std::initializer_list<int>{0,0});
在向量中放置数组的正确方法是什么?
编辑:
是的,您可以从 initializer list 创建 std::array:
std::array<int, 2> a = {0, 0}
工作正常。
错误:
error C2664: 'std::array<int,2>::array(const std::array<int,2> &)': cannot convert argument 1 from 'std::initializer_list<int>' to 'const std::array<int,2> &'
【问题讨论】:
-
数组是否在向量内有关系吗?尝试构造不在初始化列表中的向量中的数组时,您不会遇到相同的错误吗?请在问题中包含错误
-
std::array没有要转发到的 emplace_back 的 ctor。 -
我想在这里你可以找到它为什么不起作用:stackoverflow.com/questions/8192185/…
标签: c++ stdvector stdarray emplace