C STL迭代器輔助函式

2021-10-18 19:35:59 字數 927 閱讀 3910

平時零零碎碎用過,今天總結一下?

該函式有多個過載,可以用於各類容器迭代器,可以讓乙個迭代器一次前進若干個元素,很好懂,舉個栗子:

#include

#include

using

namespace std;

intmain()

輸出結果:

1

32

#include

#include

using

namespace std;

intmain()

輸出結果:

121

2

求兩個迭代器之間的距離,如果不是隨機訪問的迭代器,則就是通過暴力遍歷求解出的距離,時間複雜度為o(n

)o(n)

o(n)

(需要注意兩個迭代器的前後位置,否則容易出錯)

舉個栗子:

#include

#include

using

namespace std;

intmain()

輸出結果:

2
交換兩個迭代器的元素值,其實就是等價於swap(*it1, *it2)(其內部原始碼就是這麼實現的),所以要求兩個迭代器指向的元素是可以賦值的,甚至不需要要求兩個迭代器的型別相同

舉個栗子

#include

#include

using

namespace std;

intmain()

迭代器和輔助函式

迭代器 iterator 是連線容器和演算法的紐帶,為資料提供了抽象,使寫演算法的人不必關心各種資料結構的細節。迭代器提供了資料訪問的標準模型 物件序列,使對容器更廣泛的訪問操作成為可能。根據迭代器所支援的操作不同,在 stl中定義了如下 5種迭代器 迭代器類別 說明輸入 從容器中讀取元素。輸入迭代...

迭代器的輔助函式

迭代器的輔助函式 stl 中有用於操作迭代器的三個函式模板,它們是 advance p,n 使迭代器 p 向前或向後移動 n 個元素。distance p,q 計算兩個迭代器之間的距離,即迭代器 p 經過多少次 操作後和迭代器 q 相等。如果呼叫時 p 已經指向 q 的後面,則這個函式會陷入死迴圈。...

迭代器的輔助函式例項

問題及 檔名稱 main.cpp 作 者 崔青青 完成日期 2016年6月3日 版 本 號 v1.0 問題描述 輸入描述 無 輸出描述 無 include include include includeusing namespace std int main list iterator pos co...