在c++中,迭代器與stl其它容器聯合使用時,可以提供一種遍歷的方法,區別於其它形式的遍歷,使用迭代器在書寫思路上較為容易。
普通迭代器
這種迭代器支援iter++、iter–等操作,同樣支援iter+=2但是需要注意越界(不建議使用+=2等容易越界的操作)。
vector::iterator iter = nums.begin();
for (; iter != nums.end(); iter++)
常量迭代器
常量迭代器不允許通過*iter來修改所指向的值,當不需要修改數值時最好採用常量迭代器。begin和end對應為cbegin和cend。
//常量迭代器
vector::const_iterator iter = nums.cbegin();
for (; iter != nums.cend(); iter++)
反向迭代器
反向迭代器的begin指向陣列的最後乙個元素,與正向的迭代器相反。begin和end對應為rbegin和rend。
vector::reverse_iterator iter = nums.rbegin();
for (; iter != nums.rend(); iter++)
反向常量迭代器
前兩個的結合。begin和end對應為crbegin和crend。
vector::const_reverse_iterator iter = nums.crbegin();
for (; iter != nums.crend(); iter++)
C STL 迭代器 容器 演算法
stl standardtemplatelibrary 即標準模板庫,是乙個具有工業強度的,高效的c 程式庫。它被容納於c 標準程式庫 c standardlibrary 中。該庫包含了諸多在電腦科學領域裡所常用的基本資料結構和基本演算法。為廣大c 程式設計師們提供了乙個可擴充套件的應用框架,高度體...
C STL容器迭代器失效 筆記
迭代器是封裝了指標 過載了 等操作符的類模板,具有類似指標的行為。迭代器的設計是對資料結構的泛化,使不同容器具有相同的訪問方式,讓 不必依賴於特定的資料結構。指標也可以狹義的理解為迭代器。在c 中經常使用迭代器對stl容器進行操作,但很多同學沒怎麼關注過迭代器失效的問題。迭代器失效,指迭代器指向錯誤...
C STL常用容器總結之一 容器與迭代器
3 本博文僅作學術交流只用,無任何其他用途。言歸正傳,下面開始介紹c 中的stl容器。standard template library,標準模板庫。所謂stl容器,就是將最常用的一些資料結構實現出來。常用的資料結構不外乎陣列array 鍊錶list 樹tree 堆疊stack 佇列queue 雜湊...