用大小初始化 std::vector 的数组

Initialize array of std::vector with sizes

这不会编译,因为获取大小(类似于 vector::vector( size_t ))的构造函数是 explicit:

constexpr auto n = 16;
std::vector< std::unique_ptr< int > > v[ 2 ]{ { n }, {} };

那么如何使用 n 个默认构造元素初始化 v[ 0 ],并将 v[ 1 ] 留空?

您可以显式构造临时对象,例如

std::vector< std::unique_ptr< int > > v[ 2 ]{ std::vector< std::unique_ptr< int > >{ n }, {} };