用大小初始化 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 }, {} };
这不会编译,因为获取大小(类似于 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 }, {} };