平時零零碎碎用過,今天總結一下?該函式有多個過載,可以用於各類容器迭代器,可以讓乙個迭代器一次前進若干個元素,很好懂,舉個栗子:
#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...