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