他們兩個之間有什麼不同? 如果沒有區別爲什麼新的名字?
實際上,它是舊名: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