我有一个std::array<Foo, 10>
,我想创建一个std::array<Bar, 10>
使用从Foo
to的函数Bar
。通常我会这样使用std::transform
:
array<Bar, 10> bars;
transform(foos.begin(), foos.end(), bars.begin(), [](Foo foo){
return Bar(foo.m_1, foo.m_2);
});
但是,Bar
没有默认构造函数,所以我无法创建bars
数组。我可以一直使用vector
,但如果能够array
保证我总是有 10 个元素,那就太好了。那可能吗?