私はかなり簡単な質問がありました。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で実装されていない任意の特定の理由がある:のstd ::ベクトルは、次の2つのコンストラクタを提供しますか?理由があるはずだと思うけど、ただちに見ることはできません。
C++には、パラメータリストの後に出現するものを指定するときに、それを吸い上げて余分な引数を与えなければならない場所がたくさんあるような気がします。 1つの例は、(テンプレート引数の) 'std :: priority_queue'の比較関数を指定することです。アロケータだけを指定するのは本当によく使われるケースなので、彼らが決定したと思いますか? – gowrath
@gowrathはい、時にはPythonの名前付きparamsが本当に欠けています:) – ovanes