我有一个低于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);
您的begin
和end
迭代器的顺序错误。您应该将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>());