大きいサイズのstd::vectorに値を追加していく際はpush_back()は遅いので,最初に空の配列を用意し,要素代入で初期化してゆくほうが速いとのこと.これをクラスのvectorでやろうと思ったときにハマったのでメモ.
以下のページで解決した.
// Nはサイズ,Student(0)でコンストラクタを呼び出している.
std::vector<Student> vec(N, Student(0));
もしStudentクラスがデフォルトコンストラクタを持っていなければ,
std::vector<Student> vec(N);
とするとコンストラクタが呼び出せずエラーになる.(No matching constructor for initialization of "...")
No matching constructor for initialization of ...のエラーについては下記記事もまとまっていて良い.