1.傳統下標遍歷
int main( ){ int a[10] = {1,2,3,4,5,6,7,8,9,10}; for (int i=0;i<10;i++){ cout<<a[i]<<endl; } }
2.指針遍歷
我們知道C++中的數組名實際上是一個存放數組首元素地址的常量。並且數組是連續的空間,所以地址也是連續的。
所以,數組名即為數組首元素地址。數組名加數組長度-1即為數組尾元素地址。所以我們用指針來遍歷數組也是非常方便的。
int main( ){ int a[10] = {1,2,3,4,5,6,7,8,9,10}; for (int *p=a;p!=a+10;p++){ cout<<*p<<endl; } }
3.基於范圍 (range-based) 的for循環
這是C++11中增加的功能,可以方便的對同一類型的范圍數據做遍歷。
int main( ){ int a[10] = {1,2,3,4,5,6,7,8,9,10}; for (int i : a) { cout<< i <<endl; } }
4.使用迭代器來遍歷數組
迭代器是用來訪問容器內元素的類模板,雖然表現行為像指針,但是和指針有本質的區別。使用上,相較於指針,可以方便的使用成員函數begin()和end()來獲取遍歷開始地址和遍歷結束地址,同時,迭代器使用之后會自動回收。
int main( ){ int a[10] = {1,2,3,4,5,6,7,8,9,10}; for(int* p = begin(a);p!=end(a);p++){ cout<<*p<<endl; } }