我有一個相當快的問題。性病::矢量提供了以下兩個構造函數:組合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