8 Stimmen

Eine Reihe von Elementen zwischen Containern verschieben?

Ich habe in der C++-Dokumentation nach einer Funktion gesucht, mit der eine Reihe von Elementen von einem Container in einen anderen verschoben werden kann, wobei die Semantik von move verwendet wird. Ich habe jedoch keine solche Funktion gefunden. Was vermisse ich?

Wie kann ich Folgendes tun, ohne zu kopieren und explizite Schleifen zu verwenden?

// Move 10 elements from beginning of source to end of dest
dest.end() <- move(source.begin(), source.begin() + 10)

9voto

GManNickG Punkte 476445

Ich glaube, Sie suchen nach std::move in <algorithm> :

std::move(source.begin(), source.begin() + 10,
            std::insert_iterator(dest, dest.end()));

Es ist genau wie std::copy mit dem Unterschied, dass es verschieben-zuordnen statt kopieren-zuordnen ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X