std::vector<double>(n).swap(vec);
После этого vec гарантированно будет иметь размер и емкость n со всеми значениями 0.0.
Возможно, более идиоматический способ, так как C ++ 11 это
vec.assign(n, 0.);
vec.shrink_to_fit();
со второй строкой необязательно. В случае, когда vec
начинается с более чем n
элементов, вызов shrink_to_fit
является компромиссом между удержанием большего количества памяти, чем требуется для выполнения перераспределения.