Libreria C ++ Iterator - move_iterator

Descrizione

È un adattatore iteratore che si comporta esattamente come l'iteratore sottostante.

Dichiarazione

Di seguito è la dichiarazione per std :: move_iterator.

C ++ 11

template <class Iterator> class move_iterator;

Parametri

Iterator - È un tipo iteratore bidirezionale.

Valore di ritorno

nessuna

Eccezioni

Se x in qualche modo genera mentre applica l'operatore unario & ad esso, questa funzione non genera mai eccezioni.

Complessità temporale

costante per iteratori ad accesso casuale.

Esempio

L'esempio seguente mostra l'utilizzo di std :: move_iterator.

#include <iostream>     
#include <iterator>     
#include <vector>       
#include <string>       
#include <algorithm>    

int main () {
   std::vector<std::string> foo (3);
   std::vector<std::string> bar {"sai","ram","krishna"};

   typedef std::vector<std::string>::iterator Iter;

   std::copy ( std::move_iterator<Iter>(bar.begin()),
               std::move_iterator<Iter>(bar.end()),
               foo.begin() );

   bar.clear();

   std::cout << "foo:";
   for (std::string& x : foo) std::cout << ' ' << x;
   std::cout << '\n';

   return 0;
}

Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:

foo: sai ram krishna