C++ 迭代器庫 - move_iterator



描述

它是一個迭代器介面卡,其行為與底層迭代器完全相同。

宣告

以下是 std::move_iterator 的宣告。

C++11

template <class Iterator> class move_iterator;

引數

Iterator − 它是一種雙向迭代器型別。

返回值

異常

如果在對 x 應用一元運算子& 時 x 丟擲異常,則此函式永遠不會丟擲異常。

時間複雜度

對於隨機訪問迭代器,時間複雜度為常數。

示例

以下示例顯示了 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;
}

讓我們編譯並執行上述程式,這將產生以下結果:

foo: sai ram krishna
iterator.htm
廣告