我有一个相当快的问题。性病::矢量提供了以下两个构造函数:组合std :: vector默认和填充构造函数
explicit vector(const Allocator& alloc = Allocator()); // default constructor
explicit vector(size_type count, // fill constructor
const T& value = T(),
const Allocator& alloc = Allocator());
有默认的构造函数不以0在填充构造函数的第一个参数的默认值来实现什么特别的原因?我可以想象一定有一个理由,但我不能立即看到一个。
我觉得在C++中有很多地方需要吸收它,并且当你想要指定稍后在参数列表中出现的参数时提供额外的参数。一个例子是为'std :: priority_queue'指定比较函数(在模板参数中)。我猜他们做出这个决定是因为指定分配器是一个非常常见的用例吗? – gowrath
@gowrath是的,我有时真的很想念Python的命名参数:) – ovanes