迭代器是一種物件,用於對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 ...