我有一個字符串隊列的程序。要求已更改,現在輸出必須按字母順序排列。我想隊列排序,但我得到的錯誤「沒有匹配的函數調用'begin(std::queue<std::cxx11__basic::string<char>>&)'
和'end(std::queue<std::cxx11__basic::string<char>>&)'
字符串排序隊列
queue<std::string> lines = doWork();
std::sort(std::begin(lines), std::end(lines));
什麼是排序它的最好方法是什麼?難道是更好地從隊列更改爲載體或一些其他結構?唯一需要的操作是添加結束並從結尾移除
另外我使用的是Netbeans,它只顯示編譯錯誤信息,當我將鼠標懸停在紅色的x上時,我該如何複製並粘貼消息?
編輯:我現在明白隊列不能排序。那麼是什麼最好的數據結構使用?它只需要從一端添加,按照直線排列(從頭到尾)並進行排序?
隊列是一個FIFO,你不能排序它。 – 2017-08-17 10:32:12
'排序隊列'是一個矛盾的詞彙。你可以有一個'優先級隊列',它自己命令*,但是排序已經存在的隊列違反了這兩個概念。 – EJP
@EJP這個問題使得它似乎成爲可能https://stackoverflow.com/questions/13280726/sorting-a-queue-of-structs – northerner