2010-11-09 9 views
7

Ho esaminato la documentazione del C++ per una funzione che spostava un intervallo di elementi da un contenitore a un altro, usando la semantica del movimento. Tuttavia, non ho trovato una tale funzione. Cosa mi manca?Spostare un intervallo di elementi tra i contenitori?

Come farei quanto segue senza copiare e utilizzare cicli espliciti?

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

risposta

7

Penso che tu sia alla ricerca di std::move in <algorithm>:

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

E 'proprio come std::copy, tranne muovere-assegna al posto di copia-assegnatari.

+0

Dove posso trovare una documentazione di riferimento per tale funzione? Sono stato googling e guardando la bozza finale del C++ 0x ... non riesco a trovarlo. – ronag

+1

@ronag: ho esaminato il §25.3.2, in n3126. – GManNickG

+0

Grande. Grazie. – ronag

Problemi correlati