C 之迭代器

2021-09-01 12:45:47 字數 1640 閱讀 5859

迭代器是一種物件,用於對stl容器的元素進行處理。它指向容器內部特定位置,並提供以下基本運算。

++讓迭代器指向下乙個元素

==,!=

判斷兩個迭代器是否指向同乙個位置

=將右側的值代入左側迭代器所引用的位置

*返回該位置的值

迭代器對任何種類的容器都可以用同一種方法(語法)順次訪問其元素。此外,在處理陣列元素時它還可以當作指標使用。也就是說,我們可以把迭代器看出通用介面(函式等使用方法)對容器進行迭代處理的指標。

vector ::iterator it;        //it能讀寫vector的元素

vector ::const_iterator it;   //it只能讀vector的元素,不可以修改vector中的元素

string::iterator s;                //s可以讀寫string物件中的元素

string::const_iterator s;          //s只可以讀string物件中的元素,不可以修改string物件中的元素

begin()

返回指向容器開頭的迭代器

end)

返回指向容器末尾的迭代器。這裡的末尾指迭代器最後乙個元素的下乙個位置。

clear() 

移除容器中所有資料

empty()

判斷容器是否為空

erase(pos)

刪除pos位置的資料,傳回下乙個資料的位置。

erase(beg,end)

刪除[beg,end)區間的資料,傳回下乙個資料的位置。

front()

傳回第乙個資料

insert(pos,elem)

在pos位置插入乙個elem拷貝,傳回新資料位置

max_size()

返回容器中最大資料的數量

pop_back()

刪除最後乙個資料

push_back(elem)

在尾部加入乙個資料

#include#includeusing namespace std;

void print(vectorv)

cout

// 將讀入的數字存入vector

for(int i;i>x;

v.push_back(x); }

// 輸出vector

cout<

print(v);

// 使用迭代器,將vector的起始位置給vector

vector::iterator it = v.begin() ;

// 將迭代器指向的位置的數值設定為3

*it = 3;

// 將迭代器指向下乙個位置

it++;

// 將迭代器指向的位置的數值加一

(*it)++;

// 輸出當前的vector

cout<

print(v);

return 0;

}

執行結果

1.《挑戰程式設計競賽2》

2.c++迭代器介紹 

C 迭代器之 反向迭代器

反向迭代器 reverse iterator 是普通迭代器的介面卡,通過重新定義自增和自減操作,以達到按反序遍歷元素的目的。如果在標準演算法庫中用反向迭代器來代替普通的迭代器,那麼執行結果與正常情況下相反。除此之外,其用法與普通迭代器完全一樣,我們不作詳細討論。這裡主要討論的是反向迭代器的乙個很特殊...

C 之 迭代器

迭代器是一種檢查容器內元素並遍歷元素的資料型別。c 一般趨向於使用迭代器而不是下標操作。每種容器都定義了自己的迭代器型別,例如vector vector iterator iter 定義乙個名為iter的迭代器迭代器的初始化 vector ivec vector iterator iter1 ive...

c 之反向迭代器

include include include using namespace std int main cout include include include using namespace std int main vectorv a,a 10 vector reverse iterator ...