c++ sort函数运用详解

bool cmp(int a,int b)
{
return a<b;
}
sort(a+j,a+n-j+1,cmp);

为何sort函数无法调用
一楼:头文件是包含的,就是调试的时候一到sort函数这边就无法进行下去,即无法进入下一步。
二楼:在你所说的不用自己写的cmp函数,sort照样无法工作。
三楼:我所做的题目是排列,即自己编写next_permutation函数。

第1个回答  2010-03-02
●首先sort要包含algorithm头文件。

●其次sort是std命名空间中的函数,要写std::sort,或者在最开始写using namespace std;

●最后,C++中的sort很多情况下不需要你写cmp函数,像你的情况是比较两个int,可以直接这么写:
sort(a+j,a+n-j+1);
sort自己知道如何比较两个int的。而且即使是复杂的比较,也一般写仿函数而不是函数,因为仿函数更快。本回答被提问者采纳
第2个回答  2010-03-02
是不是没有加头文件
加上#include <algorithm>试一下,如果还不行可以再提供一下细节,再讨论一下
第3个回答  2010-03-02
#include <algorithm>
using namespace std;
...
sort函数是排序用的,一般用于数组。

int a[]={0,8,3,5,6,7,81,9,12,1};
sort(&a[0],&a[10]);
数组首地址,和尾地址作为参数。

string a[5]={"abc","dfe","sd","gf","rg"};
sort(&a[0],&a[5]);
字符串也可以。