Ошибка в вызове std :: stable_sort? - PullRequest
2 голосов
/ 20 сентября 2010
struct SimGenRequest {

    int wakeup_mfm_;
    double value_;

    bool operator < ( const SimGenRequest & r2 ) const 
        { return ( wakeup_mfm_ < r2.wakeup_mfm_ ) ; }

};

Использование:

std::stable_sort ( all_requests_.begin ( ), all_requests_.end ( ) );

Работает (компилируется). Но

struct SimGenRequest {

    int wakeup_mfm_;
    double value_;

};

bool CompareByWakeTime ( const SimGenRequest & r1, const SimGenRequest & r2 ) {
    return ( r1.wakeup_mfm_ < r2.wakeup_mfm_ ) ;
}

Использование:

std::stable_sort ( all_requests_.begin ( ), all_requests_.end ( ), 
    CompareByWakeTime );

не работает. Есть указатели?

Ответы [ 2 ]

0 голосов
/ 06 декабря 2010

Ниже приведен более или менее ваш код.Он компилирует и производит ожидаемый результат.Чтобы помочь вам в дальнейшем, нам нужно больше информации о том, что не работает.

0 голосов
/ 05 декабря 2010

STL использует только один оператор без перегрузки. В противном случае вы можете указать любой логический функтор для сортировки, но вы должны ввести его при вызове stable_sort.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...