2010-11-09 4 views
7

J'ai regardé la documentation C++ pour une fonction qui déplacerait une gamme d'éléments d'un conteneur à l'autre, en utilisant la sémantique de déplacement. Cependant, je n'ai pas trouvé une telle fonction. Qu'est-ce que je rate?Déplacez une plage d'éléments entre les conteneurs?

Comment ferais-je ce qui suit sans copier et utiliser des boucles explicites?

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

Répondre

7

Je pense que vous cherchez std::move dans <algorithm>:

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

Il est comme std::copy, sauf se déplacer au lieu de-assigne copie-cessionnaires.

+0

Où puis-je trouver une documentation de référence pour cette fonction? J'ai été googling et en regardant le projet final C++ 0x ... ne peut pas sembler le trouver. – ronag

+1

@ronag: J'ai regardé §25.3.2, dans n3126. – GManNickG

+0

Génial. Je vous remercie. – ronag

Questions connexes