我想知道下面的代碼做什麼:下面的代碼是做什麼的?
for (auto x:m) std::cout << x << " ";
我已經知道auto
是一種方法,它留給編譯器來決定變量的類型,但我不知道是什麼:m
一樣。
我想知道下面的代碼做什麼:下面的代碼是做什麼的?
for (auto x:m) std::cout << x << " ";
我已經知道auto
是一種方法,它留給編譯器來決定變量的類型,但我不知道是什麼:m
一樣。
正是在這裏所描述的C++ 11基於範圍的for
循環語法:http://www.cprogramming.com/c++11/c++11-ranged-for-loop.html
m
這裏應該是一個容器,比如std ::矢量。代碼將迭代容器,並將每個元素(在循環內部以x
的形式訪問)放入std::cout
流中。元素將被空格分隔。
它也可以在C++ 10上工作嗎? –
你的意思是C++ 03?不,不是的。 –
m
是遵循範圍概念的任何類型(即Container concept)。
循環遍歷m
的所有元素,其中x
表示當前迭代的值。
'm'也可以是數組或用戶定義的類型。它不必完全滿足容器的概念。 – juanchopanza
@juanchopanza我沒有說'm'是一個容器。 – Pixelchemist
m可能是一個容器:所以對於您的容器中的每個元素(x)(m):print x – Alexis
您能告訴我們什麼是「m」嗎? – johnchen902
C++ 11 - 新的ISO C++標準[無序容器](http://www.stroustrup.com/C++11FAQ.html) –