迭代器的基本使用 遍歷

2021-08-22 02:39:32 字數 770 閱讀 1914

迭代器提供一些基本操作符:*、++、==、!=、=。這些操作和c/c++「操作array元素」時的指標介面一致。不同之處在於,迭代器是個所謂的複雜的指標,具有遍歷複雜資料結構的能力。其下層執行機制取決於其所遍歷的資料結構。因此,每一種容器型都必須提供自己的迭代器。事實上每一種容器都將其迭代器以巢狀的方式定義於內部。

接下來我簡單的介紹迭代器的簡單應用

vector的正向和反向遍歷方法

我們以列印舉例:

void print_vector(const

vector

& v);

for(int i = 0; i

< v.

size; i++)

cout

<

利用iterator遍歷

vector

::const_iterator it = v.begin();

while(it != v.end())

cout

<這裡需要注意的是不要將const_iterator寫成iterator,因為v傳進來是const的所以調不動iterator

vector

::const_reverse_iterator it = v.rbegin();

while(it != v.rend())

cout

<​如上,迭代器在遍歷容器中的應用。

使用next遍歷迭代器

不使用for遍歷可迭代物件,而使用 next 函式並在 中捕獲 stopiteration 異常。比如,下面的例子手動讀取乙個檔案中的所有行 def manual iter with open test.txt r as f try while true line next f print line...

迭代器遍歷

iterator物件稱為迭代器,主要用於遍歷collection 集合中的元素。所有實現了collection介面的集合類都有乙個iterator 方法,用以返回乙個實現了lterator介面的物件,即可以返回乙個迭代器。lterator的結構.iterator僅用於遍歷集合,iterator本身並...

使用迭代器 遍歷檔案的資訊

1.迭代檔案的行 public static ienumerablereadlines string filename static void main 2.使用迭代器和謂詞對檔案中的行進行篩選 public static ienumerablewhere ienumerablesource,pre...