使用C++遍历数组
给定大小为 N 的整数数组,任务是遍历并打印数组中的元素。
示例:
输入: arr[] = {2, -1, 5, 6, 0, -3}
输出: 2 -1 5 6 0 -3
输入: arr[] = {4, 0, -2, -9, -7, 1}
输出: 4 0 -2 -9 -7 1
有三种方法在C++中遍历数组元素:
- 使用for循环。
- 使用for_each循环。
- 使用范围for循环。
让我们开始详细讨论每种方法。
1. 使用for Loop
以下是使用for循环遍历数组的方法。
方法:
A. 从 0 开始循环,到 N-1 结束循环,其中 N 是数组的大小。
for(i = 0; i < N; i++)
B. 借助
arr[index]
访问数组的每个元素。 C. 打印元素。
cout << arr[i] << endl;
下面是上述方法的实现:
// C++ program to traverse
// the array
#include <bits/stdc++.h>
using namespace std;
// Function to traverse and
// print the array
void printArray(int* arr, int n)
{
int i;
cout << "Array: ";
for (i = 0; i < n; i++)
{
cout << arr[i] << " ";
}
}
// Driver code
int main()
{
int arr[] = {2, -1, 5, 6, 0, -3};
int n = sizeof(arr) / sizeof(arr[0]);
printArray(arr, n);
return 0;
}
输出
Array: 2 -1 5 6 0 -3
时间复杂度: O(n)
辅助空间: O(1)
2. 使用for-each Loop
for_each是一个强大的STL算法,用于对范围元素进行操作并应用自定义定义的函数。它以范围的起始和最后一个迭代器对象作为前两个参数,并将函数对象作为第三个参数。
以下是实现上述方法的C++程序:
// C++ program to traverse the
// array using for_each loop
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
// Driver code
int main()
{
int arr[] = {2, -1, 5, 6, 0, -3};
// Traverse array with for_each
// using array's data type
cout << "Traverse using array's data type";
for(int x : arr)
cout << x << " ";
cout << endl;
// Traverse array with for_each
// using auto keyword
cout << "Traverse using auto keyword";
for(auto x : arr)
cout << x << " ";
return 0;
}
输出
Traverse using array's data type2 -1 5 6 0 -3
Traverse using auto keyword2 -1 5 6 0 -3
时间复杂度: O(n)
辅助空间: O(1)
3. 使用范围for Loop
范围for循环是for循环的可读版本。以下代码展示了如何使用范围for循环实现上述代码。
// C++程序来使用范围循环遍历数组
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
// 驱动程序
int main()
{
int arr[] = {2, -1, 5, 6, 0, -3};
for (const auto &var : arr)
{
cout << var << " " ;
}
return 0;
}
输出
2 -1 5 6 0 -3
时间复杂度: O(n)
辅助空间: O(1)