将int的矢量从最高到最低排序

时间:2014-05-13 05:20:11

标签: c++ vector

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

1 个答案:

答案 0 :(得分:3)

您的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>());