【发布时间】:2010-09-20 14:21:31
【问题描述】:
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)。
-
假设需要包含和 std::set
all_requests_; -
@Steve Townsend:我怀疑它使用
std::set编译——你的意思是std::vector? (在 set 上调用std::stable_sort毫无意义,而且确实不会编译!)否则,它也会为我编译。