2013-07-22 136 views
0

我想知道下面的代碼做什麼:下面的代碼是做什麼的?

for (auto x:m) std::cout << x << " "; 

我已經知道auto是一種方法,它留給編譯器來決定變量的類型,但我不知道是什麼:m一樣。

+1

m可能是一個容器:所以對於您的容器中的每個元素(x)(m):print x – Alexis

+0

您能告訴我們什麼是「m」嗎? – johnchen902

+0

C++ 11 - 新的ISO C++標準[無序容器](http://www.stroustrup.com/C++11FAQ.html) –

回答

0

正是在這裏所描述的C++ 11基於範圍的for循環語法:http://www.cprogramming.com/c++11/c++11-ranged-for-loop.html

m這裏應該是一個容器,比如std ::矢量。代碼將迭代容器,並將每個元素(在循環內部以x的形式訪問)放入std::cout流中。元素將被空格分隔。

+0

它也可以在C++ 10上工作嗎? –

+0

你的意思是C++ 03?不,不是的。 –

0

m是遵循範圍概念的任何類型(即Container concept)。

循環遍歷m的所有元素,其中x表示當前迭代的值。

+0

'm'也可以是數組或用戶定義的類型。它不必完全滿足容器的概念。 – juanchopanza

+0

@juanchopanza我沒有說'm'是一個容器。 – Pixelchemist