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);
不起作用。 任何指針?
「不起作用」是什麼意思?不,這個代碼中沒有指針(儘管迭代器可能是指針的typedef)。 – 2010-09-20 14:25:18
第二個變體編譯爲我,假設需要include和std :: set all_requests_; –
2010-09-20 14:30:38
@Steve Townsend:我懷疑它是用'std :: set'編譯的 - 你的意思是'std :: vector'? (在集合上調用'std :: stable_sort'毫無意義,實際上它不會被編譯!)否則,它也會爲我編譯。 – Thanatos 2010-12-05 20:38:58