建議使用 Visual Studio 2017

<iterator>

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

定義迭代器基本、預先定義的迭代器和串流迭代器,以及一些支援的範本。 預先定義的迭代器包含插入和反向配接器。 插入迭代器配接器有三個類別:前面、背面、一般。 它們提供插入語意,而不是覆寫語意 (由容器成員函式迭代器提供的)。

#include <iterator>  
  

迭代器是指標的一般化,擷取自其需求,以允許 C++ 程式以一致方式使用不同資料結構。 迭代器為容器和泛型演算法之間的媒介。 演算法是定義為在範圍 (由迭代器類型指定的) 上作業,而不是在特定資料類型上作業。 演算法可在滿足迭代器需求的任何資料結構上操作。 迭代器有五種類型或分類,每個都有自己的一組需求和產生的功能:

  • 輸出:向前移動,可以儲存但不會擷取值,由 ostream 和 inserter 提供。

  • 輸入:向前移動,可以擷取但不會儲存值,由 istream 提供。

  • 正向:向前移動,可以儲存和擷取值。

  • 雙向:向前向後移動,可以儲存和擷取值,由 list、set、multiset、map 和 multimap 提供。

  • 隨機存取:以任何順序存取項目,可以儲存和擷取值,由 vector、deque、string 和 array 提供。

具有更大的需求和更強大的項目存取權的迭代器,可取代較少需求的迭代器。 舉例來說,如果正向迭代器被呼叫,可改用隨機存取迭代器。

Visual Studio 已將擴充功能加入至 C++ Standard 程式庫迭代器,支援已檢查和未檢查迭代器的各種偵錯模式情況。 如需詳細資訊,請參閱安全程式庫︰ c + + 標準程式庫

函式

換頁依指定的位置數目遞增迭代器。
back_inserter建立可以在指定的容器背面插入項目的迭代器。
開始擷取在指定的容器中第一個項目的迭代器。
cbegin擷取在指定的容器中第一個項目的常數迭代器。
cend擷取常數迭代器,指向在指定的容器中最後一個項目後面的項目。
距離判斷在兩個迭代器定址的位置之間的增量數。
結束擷取迭代器,指向在指定的容器中最後一個項目後面的項目。
front_inserter建立可以在指定的容器前面插入項目的迭代器。
插入器迭代器配接器,將新的項目新增至容器中指定的插入點。
make_checked_array_iterator建立checked_array_iterator ,可以由其他演算法。 注意︰此函式是 Standard c + + 程式庫的 Microsoft 擴充功能。 透過使用這個函式實作的程式碼不可移植到不支援此 Microsoft 擴充功能的 C++ Standard 建置環境。
make_move_iterator傳回移動迭代器,其中包含所提供的迭代器,做為其儲存的基底迭代器。
make_unchecked_array_iterator建立unchecked_array_iterator ,可以由其他演算法。 注意︰此函式是 Standard c + + 程式庫的 Microsoft 擴充功能。 透過使用這個函式實作的程式碼不可移植到不支援此 Microsoft 擴充功能的 C++ Standard 建置環境。
下一步反覆運算指定的次數,並傳回新的迭代器位置。
上一個以反向方向反覆運算指定的次數,並傳回新的迭代器位置。

運算子

運算子 ! =測試運算子左邊的迭代器物件是否不等於右邊的迭代器物件。
運算子 = =測試運算子左邊的迭代器物件是否等於右邊的迭代器物件。
運算子測試運算子左邊的迭代器物件是否小於右邊的迭代器物件。
運算子<>測試運算子左邊的迭代器物件是否小於或等於右邊的迭代器物件。
運算子 >測試運算子左邊的迭代器物件是否大於右邊的迭代器物件。
運算子 > =測試運算子左邊的迭代器物件是否大於或等於右邊的迭代器物件。
運算子 +將位移新增至迭代器,並傳回新的 reverse_iterator,定址在新的位移位置中插入的項目。
operator-將一個迭代器減去另一個,並傳回差異。

類別

back_insert_iterator此樣板類別描述輸出迭代器物件。 項目插入容器型別的容器,存取受保護透過指標它所儲存的物件稱為容器。
bidirectional_iterator_tag提供傳回類型的類別iterator_category表示雙向迭代器函式。
checked_array_iterator類別,使用隨機存取、已檢查的迭代器來存取陣列。 注意︰這個類別是 Standard c + + 程式庫的 Microsoft 擴充功能。 透過使用這個函式實作的程式碼不可移植到不支援此 Microsoft 擴充功能的 C++ Standard 建置環境。
forward_iterator_tag提供傳回類型的類別iterator_category表示正向迭代器函式。
front_insert_iterator此樣板類別描述輸出迭代器物件。 項目插入容器型別的容器,存取受保護透過指標它所儲存的物件稱為容器。
input_iterator_tag提供傳回類型的類別iterator_category表示輸入迭代器函式。
insert_iterator此樣板類別描述輸出迭代器物件。 項目插入容器型別的容器,存取受保護透過指標它所儲存的物件稱為容器。 它也會儲存受保護迭代器類別物件container:: iterator,稱為iter
istream_iterator此樣板類別描述輸入迭代器物件。 它會擷取類別的物件Ty它會透過它所儲存的類型指標的物件存取的輸入資料流從basic_istream < ElemTr>。
istreambuf_iterator此樣板類別描述輸入迭代器物件。 它會插入項目類別的Elem輸出資料流緩衝區中,它會透過存取物件其儲存的指標basic_streambuf < ElemTr>。
迭代器此樣板類別做為所有迭代器的基底類型。
iterator_traits樣板協助程式類別,提供與不同迭代器類型相關聯的關鍵類型,因此可以相同方式參考這些不同迭代器類型。
move_iteratormove_iterator 物件儲存 RandomIterator 類型的隨機存取迭代器。 它的行為就像隨機存取迭代器 (除非取值時)。 operator* 的結果會隱含轉型為 value_type&&: 以建立 rvalue reference
ostream_iterator此樣板類別描述輸出迭代器物件。 類別的物件插入其類型輸出資料流中,它會透過存取物件其儲存的指標basic_ostream < ElemTr>。
ostreambuf_iterator 類別此樣板類別描述輸出迭代器物件。 它會插入項目類別的Elem輸出資料流緩衝區中,透過它所儲存的指標類型的物件存取basic_streambuf < ElemTr>。
output_iterator_tag提供傳回類型的類別iterator_category表示輸出迭代器函式。
random_access_iterator_tag提供傳回類型的類別iterator_category表示的隨機存取迭代器函式。
reverse_iterator此樣板類別描述行為類似隨機存取迭代器,只不過是反向方向的物件。
unchecked_array_iterator類別,使用隨機存取、未檢查的迭代器來存取陣列。 注意︰這個類別是 Standard c + + 程式庫的 Microsoft 擴充功能。 透過使用這個函式實作的程式碼不可移植到不支援此 Microsoft 擴充功能的 C++ Standard 建置環境。

標頭檔參考
C + + 標準程式庫中的執行緒安全
標準樣板程式庫

顯示: