gpt4 book ai didi

c++ - 调用 std::stable_sort 时出错?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:03:43 28 4
gpt4 key购买 nike

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 );

不起作用。有什么指点吗?

最佳答案

以下或多或少是您的代码。它编译并产生预期的输出。为了进一步帮助您,我们需要更多关于什么不起作用的信息。

#include <algorithm>
#include <iostream>
#include <set>
#include <vector>

struct SimGenRequest {

int wakeup_mfm_;
double value_;

SimGenRequest(int w, double v) :
wakeup_mfm_(w),
value_(v)
{ }
};

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

int main()
{
std::vector<SimGenRequest> all_requests_;

all_requests_.push_back(SimGenRequest(3, 1));
all_requests_.push_back(SimGenRequest(4, 3));
all_requests_.push_back(SimGenRequest(3, 2));
all_requests_.push_back(SimGenRequest(1, 4));

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

for(std::vector<SimGenRequest>::const_iterator i = all_requests_.begin();
i != all_requests_.end();
++i)
{
std::cout << '(' << i->wakeup_mfm_ << ", " << i->value_ << ')' << std::endl;
}
return 0;
}

关于c++ - 调用 std::stable_sort 时出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3752349/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com