C++ 如何遍历数组

本文详细介绍了C++中遍历数组的三种常见方法:foreach循环、通过下标逐个访问和使用指针。分别展示了对应的代码示例,并解释了每种方法的适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++ 遍历数组常见的有三种方法

方法1 (有点类似java的foreach 循环)

#include <iostream>
using namespace std;
int main()
{

     // 一维数组
     int aar[] = {1, 2, 3, 4, 5, 6};
     for (int value :aar)
     {
      cout << value << endl;    
     };
};

遍历结果如下:

方法2

#include <iostream>
using namespace std;
int main()
{

     // 一维数组
     int aar[] = {1, 2, 3, 4, 5, 6};
     //先计算出数组的长度
     for (int i = 0; i < sizeof(aar) / sizeof(aar[0]); i++)
     {
          cout << aar[i] << endl;
     };
};

 遍历结果如下:

方法3

#include <iostream>
using namespace std;
int main()
{

     // 一维数组
     int aar[] = {1, 2, 3, 4, 5, 6};
     //使用指针
     for (int *p = aar; p <= &aar[sizeof(aar) / sizeof(aar[0]) - 1]; p++)
     {
          cout << *p << endl;
     };
};

 遍历结果如下

C++中,遍历数组可以通过多种方式实现,具体取决于使用的C++标准以及对代码可读性和性能的要求。以下是几种常见的遍历数组的方法: ### 使用传统的 `for` 循环 这种方法适用于所有版本的C++,并且提供了对数组索引的直接访问。 ```cpp #include <iostream> int main() { int arr[] = {1, 2, 3, 4, 5}; int size = sizeof(arr) / sizeof(arr[0]); for (int i = 0; i < size; ++i) { std::cout << arr[i] << " "; } return 0; } ``` ### 使用基于范围的 `for` 循环(C++11 及以上) C++11 引入了基于范围的 `for` 循环,使得数组遍历更加简洁。 ```cpp #include <iostream> int main() { int arr[] = {1, 2, 3, 4, 5}; for (int num : arr) { std::cout << num << " "; } return 0; } ``` ### 使用指针遍历数组 这种方法利用了数组和指针之间的关系,适用于所有版本的C++。 ```cpp #include <iostream> int main() { int arr[] = {1, 2, 3, 4, 5}; int size = sizeof(arr) / sizeof(arr[0]); for (int* ptr = arr; ptr != arr + size; ++ptr) { std::cout << *ptr << " "; } return 0; } ``` ### 使用 `std::for_each`(C++98 及以上) `std::for_each` 是标准库算法的一部分,可以用来遍历数组中的元素。 ```cpp #include <iostream> #include <algorithm> int main() { int arr[] = {1, 2, 3, 4, 5}; int size = sizeof(arr) / sizeof(arr[0]); std::for_each(arr, arr + size, [](int num) { std::cout << num << " "; }); return 0; } ``` ### 使用结构化绑定(C++17 及以上) C++17 引入了结构化绑定,可以与基于范围的 `for` 循环结合使用,以更清晰的方式处理复杂的数据结构[^1]。 ```cpp #include <iostream> int main() { int arr[] = {1, 2, 3, 4, 5}; for (const auto& num : arr) { std::cout << num << " "; } return 0; } ``` 每种方法都有其适用场景,例如传统 `for` 循环适合需要索引的场合,而基于范围的 `for` 循环则更适合于只需要访问元素值的情况。指针遍历和 `std::for_each` 则提供了更多的灵活性和功能性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值