我想在我的項目中尋找代替std::vector
,我發現std::queue
是我正在尋找的。基於範圍的循環std ::隊列
我有很多功能,使用range-based loop
迭代,我試圖儘可能保持它。
我嘗試編譯在std::queue
一個range-based loop
但我得到的編譯錯誤
error: no matching function for call to 'begin(std::queue&)'
不std::queue
支持範圍的基礎循環?
我確實嘗試過Google search
,但沒有找到任何與此相關的話題。
更新:
我的編譯器是GCC v4.7.1
-std=c++11
啓用
而這裏的錯誤的測試代碼:
std::queue<int> Q;
for (int i = 0;i < 10; ++i)
Q.push(i);
std::cout << "\nqueue contains: ";
for (auto i : Q)
std::cout << i << ", ";
對於將來的問題,您可以嘗試在一個在線編譯環境(如[http://ideone.com](http://ideone.com))上構建測試用例,如果您有編譯器會立即通知您問題與否。在這裏,http://ideone.com/kIln7G它給出了你提到的同樣的錯誤 – nurettin
@ mr5好吧,gcc 4.8.1和clang ++ 3.4都失敗了。 – Morwenn
@Morwenn那麼這是一個無效的代碼? – mr5