对整型向量从高到低排序



我有一个低于vector<int> jobs;的向量

里面有一串数字比如[4,6,2,7,262,15,623,9]

我如何排序这个向量从数字最高到最低?所以最大的数字在前面?

我试着使用这个,但它没有工作。程序崩溃。

struct myclass {
  bool operator() (int i,int j) { return (i<j);}
} myobject;

std::sort (JobPool.end(), JobPool.begin(), myobject);

您的beginend迭代器的顺序错误。您应该将std::sort调用为:

std::sort(JobPool.begin(), JobPool.end(), myobject);

那么你应该让比较器实际上是一个反向工作的:

struct myclass {
    bool operator()(int i, int j) const { return j<i; }
} myobject;
那么你应该注意到标准库已经提供了std::greater:
std::sort(JobPool.begin(), JobPool.end(), std::greater<int>());

最新更新