gpt4 book ai didi

c++ - 每个 ( in ) 和 for ( : )? 之间有什么区别

转载 作者:IT老高 更新时间:2023-10-28 21:52:28 25 4
gpt4 key购买 nike

作为一个有python背景的人,当我第一次看到for(:)循环时,我很惊讶:

vector<int> vec = {1,2,3,4};
int sum = 0;
for (int i : vec){
sum += i;
}
//sum is now 10

这是一个非常有用的结构,当您不需要多次索引某个值时可能应该使用它。

但今天我发现还有一个for each (in)循环,使用方式如下:

vector<int> vec = {1,2,3,4};
int sum = 0;
for each (int i in vec){
sum += i;
}
//sum is now 10

有趣的是,第二个的谷歌搜索结果大多与微软有关,而不是通常的 c++ 引用网站。

这两个循环有什么区别?

最佳答案

第一个叫做 range-based for loop并且是该语言的 C++11 特性。它允许您在具有 begin() 和 end() 方法可用(成员或非成员)或数组的范围上进行迭代。

第二个是 Microsoft 特定的语法,可用于 C++/CLI,但也可用于 C++。它允许遍历数组或集合。不推荐使用它,应该首选基于范围的 for 循环。见 for each, in .

关于c++ - 每个 ( in ) 和 for ( : )? 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22836277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com