使用一个向量的向量,我可以这样做:
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});
如何正确地在向量(vector)中嵌入数组?
编辑:
是的,你可以从初始化列表(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
构造函数。 - sweenish