C++ range-based for循环 测试代码
时间: 2024-05-11 07:18:11 浏览: 128
以下是一个简单的测试代码,演示如何使用C++的range-based for循环遍历数组:
```c++
#include <iostream>
#include <vector>
int main() {
int arr[] = {1, 2, 3, 4, 5};
std::vector<int> vec = {6, 7, 8, 9, 10};
// 使用 range-based for 循环遍历数组
for (int i : arr) {
std::cout << i << " ";
}
std::cout << std::endl;
// 使用 range-based for 循环遍历向量
for (int i : vec) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果:
```
1 2 3 4 5
6 7 8 9 10
```
相关问题
cpp11 Range-Based for 循环
C++11引入了一种新的循环语法,称为Range-Based for循环,也称为foreach循环。它可以遍历一个序列容器(如数组、vector、string等)中的元素,而无需使用一个迭代器或索引变量。语法如下:
```
for (element : container) {
// code block to be executed
}
```
其中,`element`是一个变量,用来存储容器中的元素值,而`container`则是一个序列容器。
例如,下面的代码使用Range-Based for循环遍历一个vector中的元素,输出它们的值:
```
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> v = {1, 2, 3, 4, 5};
for (int i : v) {
cout << i << " ";
}
cout << endl;
return 0;
}
```
输出结果为:
```
1 2 3 4 5
```
需要注意的是,Range-Based for循环只能用于遍历整个容器,无法在遍历过程中修改容器的大小或内容。如果需要在循环中修改容器,应该使用传统的for循环或迭代器。
使用 range-based for 循环等高级的迭代方式
range-based for 循环是 C++11 引入的一种高级循环方式,可以避免手动使用迭代器带来的问题。下面是一个使用 range-based for 循环遍历 vector 的例子:
```
vector<int> vec = {1, 2, 3, 4, 5};
for (auto& elem : vec) {
elem *= 2;
}
```
上面的代码中,我们使用 range-based for 循环遍历了一个 vector,将每个元素乘以 2。在循环过程中,elem 是一个引用,可以修改原 vector 中的元素值。这种方式避免了手动使用迭代器的麻烦,并且更加简洁易读。需要注意的是,在使用 range-based for 循环时,不要修改 vector 的大小,否则会导致迭代器失效。
阅读全文