Anda perlu menggunakan back_inserter:
std::copy(input.begin(), input.end(), std::back_inserter(output));
std::copytidak menambahkan elemen ke wadah yang Anda masukkan: tidak bisa; hanya memiliki iterator ke dalam wadah. Karena itu, jika Anda meneruskan iterator keluaran langsung ke std::copy, Anda harus memastikan itu menunjuk ke kisaran yang setidaknya cukup besar untuk menahan rentang input.
std::back_insertermembuat iterator keluaran yang memanggil push_backwadah untuk setiap elemen, sehingga setiap elemen dimasukkan ke dalam wadah. Atau, Anda bisa membuat sejumlah elemen dalam std::vectoruntuk menahan rentang yang disalin:
std::vector<double> output(input.size());
std::copy(input.begin(), input.end(), output.begin());
Atau, Anda bisa menggunakan std::vectorkonstruktor rentang:
std::vector<double> output(input.begin(), input.end());
assign()fungsi:output.assign(input.begin(), input.end());