为什么 std::vector 有 2 个构造函数而不是 1 个带默认参数的构造函数?

问题描述 投票:0回答:1

我查看了cppreference.com并发现了这个

vector();
explicit vector( const Allocator& alloc );

为什么不只是

explicit vector(const Allocator& alloc = Allocator());

1 个构造函数而不是 2 个。 是否有一个原因?与

resize(std::size_t,const T& t)
和相同
resize(std::size_t)
为什么不只是
resize(std::size_t,const T& t = T())

c++ c++11 stl std stdvector
1个回答
0
投票

explicit vector(const Allocator& alloc = Allocator());
需要
Allocator
既可默认构造又可复制构造。 如果
Allocator
无法执行其中一项操作,那么您将无法默认构造
vector

© www.soinside.com 2019 - 2024. All rights reserved.