-5
我有一個list<int>
的內容3,2,1
。爲什麼它是std :: list :: sort不起作用?
在列表上調用std::list::sort()
之後,整數內容的順序不會改變。這是爲什麼?
#include <list>
int main()
{
std::list<int> list, list1;
list.push_back(1);
list.push_back(2);
list.push_back(3);
list1.push_back(3);
list1.push_back(2);
list1.push_back(1);
list1.sort();
return list == list1;
}
在我的代碼中,我總是被弄錯,爲什麼?
我在使用visual studio intellisense調用sort()
函數之前和之後查看了列表的內容,並且我觀察到排序順序沒有變化,從而驗證了相等性測試的結果。
從視覺觀察,使用智能感知,有理由相信排序功能不起作用。
我改變了數據結構到載體中,使我不得不
class Greaterthan : std::binary_function<int,int,bool>
{
public:
result_type operator()(first_argument_type first,second_argument_type second)
{
return (result_type)(first < second);
}
}
於是,我重新寫了代碼
#include <vector>
int main()
{
std::vector<int> list, list1;
list.push_back(1);
list.push_back(2);
list.push_back(3);
list1.push_back(3);
list1.push_back(2);
list1.push_back(1);
list1.sort(Greaterthan());
return list == list1;
}
但是,同樣的事情發生。爲什麼?
'錯誤:缺少源代碼' –
誰知道?我們無法讀懂頭腦。具體一點。發佈您的代碼。 – silentboy
42行,有語法錯誤。 –