Thư viện lặp lại C ++ - make_move_iterator

Sự miêu tả

Nó xây dựng một đối tượng move_iterator từ nó.

Tờ khai

Sau đây là khai báo cho std :: make_move_iterator.

C ++ 11

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

Thông số

it - Nó là một trình lặp.

Giá trị trả lại

Nó trả về một move_iterator tương đương với nó, nhưng nó sẽ di chuyển trên các tham chiếu.

Ngoại lệ

Nếu x bằng cách nào đó ném trong khi áp dụng toán tử một ngôi & cho nó, hàm này không bao giờ ném ra ngoại lệ.

Thời gian phức tạp

hằng số cho các trình vòng lặp truy cập ngẫu nhiên.

Thí dụ

Ví dụ sau đây cho thấy cách sử dụng 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;
}

Hãy để chúng tôi biên dịch và chạy chương trình trên, điều này sẽ tạo ra kết quả sau:

foo: tutorialspont com india

Language