2016-11-23 5 views
-5

3,2,1list<int>があります。なぜ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; 
} 

として、私は再書いたコード、ベクトルにデータ構造を変更しかし、同じことが起こりました。どうして?

+3

'エラー:ソースコードがありません ' –

+1

誰が知っていますか?私たちは読むことができません。具体的にする。あなたのコードを投稿してください。 – silentboy

+4

行42、構文エラーがあります。 –

答えて

-2

は、だから、このようなものを持っている場合:

std::list<int> l; 
l.push_back(4); 
l.push_back(2); 
l.push_back(1); 
l.sort(); 

リストが見れますよう:[1,2,4]

あなたは、より詳細である答えを得るために私達にあなたのコードを提供する必要がありますあなたの問題のため

関連する問題