C++|范围for
C++11新引入的for语句,可遍历stl容器
//语法格式
for(变量:序列)
语句块
变量:定义一个变量,用于在每次循环迭代中存储序列中的一个元素。该变量的类型应该与序列中元素的类型兼容,也可以使用auto
关键字让编译器自动推导元素类型。
序列:表示要遍历的序列,可以是{}初始化列表、数组、vector
、list
等容器,也可以是返回迭代器对的对象。
1.遍历数组
#include<iostream>
using namespace std;
int main()
{
int arr[]={1,2,3,4,5,6};
for(int num:arr)
{
cout<<num<<" ";
}
cout<<endl;
return 0;
}
2.遍历string
#include<iostream>
#include<string>
#include<string>
int main()
{
sting str="abcde";
for(auto &x:str)//要修改序列的值,必须使用引用
x=toupper(x);
cout<<str<<endl;//输出转大写后的字符串
return 0;
}
如果需要在循环中修改序列中的元素,需要使用引用类型。
3.遍历vector
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> vec = {10, 20, 30, 40, 50};
// 使用auto关键字自动推导元素类型
for (auto element : vec) {
cout << element << " ";
}
cout << endl;
return 0;
}
如果不修改序列的值,可以定义为auto 变量或者const auto &变量;如果需要修改序列的值则必须定义为auto &变量.