Sie müssen eine back_inserter
:
std::copy(input.begin(), input.end(), std::back_inserter(output));
std::copy
fügt dem Container, in den Sie einfügen, keine Elemente hinzu: Das kann es nicht; es hat nur einen Iterator in den Container. Wenn Sie daher einen Ausgabe-Iterator direkt an std::copy
müssen Sie sicherstellen, dass er auf einen Bereich verweist, der mindestens groß genug ist, um den Eingabebereich aufzunehmen.
std::back_inserter
erzeugt einen Ausgabe-Iterator, der die push_back
auf einen Container für jedes Element, so dass jedes Element in den Container eingefügt wird. Alternativ könnten Sie auch eine ausreichende Anzahl von Elementen in der std::vector
um den zu kopierenden Bereich zu halten:
std::vector<double> output(input.size());
std::copy(input.begin(), input.end(), output.begin());
Oder Sie können die Funktion std::vector
Bereichskonstruktor:
std::vector<double> output(input.begin(), input.end());