迭代器是乙個「可遍歷stl容器內全部或部分元素」的物件。乙個迭代器用來指出容器中的乙個特定位置。
operator*:返回當前位置上的元素值;
operator==和operator!=:判斷兩個迭代器是否指向同意位置;
operator=:為迭代器賦值。
因為每個容器選擇的資料結構不同,所以每一種容器都必須提供自己的迭代器。
begin():返回乙個迭代器,指向容器的起點,也就是第乙個元素的位置。
end():返回乙個迭代器,指向容器的結束點,結束點在最後乙個元素之後。
下面看看不同的容器,怎麼使用迭代器,以及set,map等容器的見到那使用。
從執行結果可可以看出,const_iterator與iterator的區別,只有iterator迭代器可以讀寫資料。
//set 迭代器
#include#includeusing namespace std;
int main()
cout<
-5 1 2 3 4 5 6
//multimap 迭代器
#include#include#includeusing namespace std;
int main()
cout<
this is a multimap of tagged strings
//multimap 迭代器
set的內部元素依據其值自動排序,每個元素值只能出現一次,不允許重複。
multiset:
multiset和set相同,只不過它允許重複元素,也就是說multiset可包括多個數值相同的元素。
map:
map的元素都是「實值/鍵值」所形成的乙個隊組,每個元素有乙個鍵,是排序準則的基礎。每乙個鍵只能出現一次,不允許重複。(第乙個元素為鍵值,第二個元素為實值)
multimap:
multimap和map相同,但允許重複元素,也就是說multimap可包含多個鍵值相同的元素。
C 標準庫之迭代器
迭代器是對指標進行進一步抽象的產物。迭代器是遍歷所有容器 序列 流的統一介面,是標準庫泛形演算法的基礎。迭代器根據其能力分為五種 category properties valid expressions all categories copy constructible copy assignab...
C 標準庫 Reverse(逆向)迭代器
reverse 逆向 迭代器 reverse迭代器是一種配接器,重新定義遞增遞減運算,使其行為正好倒置,這樣使迭代器以逆向來處理元素。rbegin 傳回逆向遍歷的第乙個元素,也就是實際上最後乙個元素的位置 rend 傳回逆向遍歷時最後乙個元素的下乙個位置,也就是實際上第乙個元素的前乙個位置 示例 i...
C 標準庫vector以及迭代器
今天看c 的書,出現了乙個新的概念,容器vector以及容器迭代器。vector是同一種物件的集合,每個物件都有乙個對應的整數索引值。和string物件一樣,標準庫將負責管理與儲存元素相關的類存。引入標頭檔案 include 1 vectorv1 vector儲存型別為t的物件。預設建構函式,v1為...