C++ Iterator Library - make_move_iterator



Description

It constructs a move_iterator object from it.

Declaration

Following is the declaration for std::make_move_iterator.

C++11

template <class Iterator>
  move_iterator<Iterator> make_move_iterator (const Iterator& it);

Parameters

it − It is an iterator.

Return value

It returns a move_iterator equivalent to it, but that moves on dereferences.

Exceptions

If x somehow throws while applying the unary operator& to it, this function never throws exceptions.

Time complexity

constant for random-access iterators.

Example

The following example shows the usage of std::make_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 {"tutorialspont","com","india"};

   std::copy ( make_move_iterator(bar.begin()),
               make_move_iterator(bar.end()),
               foo.begin() );

   // bar now contains unspecified values; clear it:
   bar.clear();

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

   return 0;
}

Let us compile and run the above program, this will produce the following result −

foo: tutorialspont com india
iterator.htm
Advertisements