前言
C++11 之后引入了类似python的for循环遍历。
for i in [1,2,3]:
pass
正文
C++中用在array数组和vector可变数组中。
// array
int nums[] = {1,3,4};
for(int var:nums)
{
cout << var << endl;
}
其中,var依次遍历nums中的元素。
// vector
#inlucde <vector>
vector <int> nums = {1,2,3};
for(int var:nums)
{
cout << var << endl;
}
在实践中更好的选择
// array
int nums[] = {1,3,4};
for(int &var:nums)
{
cout << var << endl;
}
// vector
#inlucde <vector>
vector <int> nums = {1,2,3};
for(int &var:nums)
{
cout << var << endl;
}
注意区别:
代码 | 解释 |
---|---|
int var : nums | 在每次迭代时,复制nums中的每个元素到var中,但是需要开辟新的内存,对内存不友好 |
int &var : nums | 不是复制,而是直接访问 nums 的每个元素,更加有效 |