[英]What is the difference between for each ( in ) and for ( : )?
作为拥有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 )
循环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 ++参考网站。
这两个循环之间有什么区别?
for each循环由Microsoft Visual C ++提供。 请参阅: http : //msdn.microsoft.com/en-us/library/xey702bw%28VS.80%29.aspx
它不是标准的C ++并且很老(在VS2005中引入)。 编译器(VS)在编译时将此循环转换为正确的循环。
因此,最好坚持使用常规for ( ; ; )
循环或for ( : )
:)循环以允许与其他编译(如g ++ for ( : )
兼容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.