雪花飘落

C++遍历数组的几种方式

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;
    }
}

 

posted @ 2021-12-12 18:11  haruyuki  阅读(6921)  评论(0编辑  收藏  举报