他们两个之间有什么不同? 如果没有区别为什么新的名字?
实际上,它是旧名:for
。
如果你的意思是,为什么C++不增加新的名称,如foreach
,对语言和其它语言一样都做了,那么你告诉我们为什么添加新名称时,旧名工作正常?
从您的评论:
但据我所知,所有其他调用这种类型的语法的 “for-each循环”。这个概念的新名称让我问是否确实比我看到的更多的差异。
好的。这是关于术语:for each-loop与基于范围的换行。
我认为这是因为C++范围为基础的换循环基本上遍历在由std中定义的范围内所有元素::开始(c)中和的std ::(c)结束。换言之,名称基于范围的循环强调了定义范围的迭代器的原理begin
和end
。
为了解释进一步,基于范围换仅环将工作begin()
和end()
为其定义的集合:
std::vector<int> v;
int a[100];
int *p = new int[100];
for(int i : v) {} // works : begin(v) and end(v) are defined
for(int i : a) {} // works : begin(a) and end(a) are defined
for(int i : p) {} // does not work : begin(p) and end(p) are not defined
希望有所帮助。
无差异。只是本机C++ foreach – k06a 2012-04-17 11:09:02
由每个,你的意思是std :: for_each? – PlasmaHH 2012-04-17 11:10:02
不同之处取决于你比较的语言,所以我认为你需要更具体一些。 – juanchopanza 2012-04-17 11:12:10