在C++中扩展了 for 循环

Extended for loop in C++

本文关键字:for 循环 扩展 C++      更新时间:2023-10-16

我正在为 c++ 搜索 memset((,我发现了一些类似以下代码的东西:

#include <iostream>
#include <cstring>
int main()
{
int a[20];
std::memset(a, 0, sizeof a);
for (int ai : a) std::cout << ai;
}

我在java中使用了for循环扩展,但从未在C++中使用过。此代码运行良好。我想知道循环是如何工作的?以及如何在任何C++代码中实现。

for (int ai : a) std::cout << ai;

用于数组 -int a[20];可以替换为

for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++)
std::cout << a[i];

或与

for (int *ai = a; ai < a + (sizeof(a)/sizeof(*a)); ai++)
std::cout << *ai;

但要与其他系列合作,例如 需要vector迭代器:

std::vector<int> v(20);
// for (auto i : v) std::cout << i;
for (std::vector<int>::iterator vi = v.begin(); vi != v.end(); vi++)
std::cout << *vi;