c++ 头文件 及 sort

时间:2022-04-26 18:52:45

c++  sort :http://www.16kan.com/post/997260.html

http://wenku.baidu.com/view/e064166daf1ffc4ffe47ac67.html

假设自己定义了一个结构体

node  struct node

{

int a;

int b;

double c;

}

有一个 node 类型的数组 node arr[100] 想对它进行排序先按 a 值升序排列如果 a 值相同再按 b 值降序排列如果 b 还相同就按 c 降序排列。就可以写这样一个比较函数 以下是代码片段

bool cmp(node x,node y)

{

if(x.a!=y.a) return x.a

if(x.b!=y.b) return x.b>y.b;

return return x.c>y.c;

}

排序时写 sort(arr,a+100,cmp);

sort(a,a+10,greater<int>());      //从大到小排序

示例:

 struct node
{
char s[];
int num;
}p[N];
bool cmp(node x,node y)
{
if(x.num==y.num)
{
if(strlen(x.s)==strlen(y.s))
return strcmp(x.s,y.s)<;
return strlen(x.s)>strlen(y.s);
}
return x.num>y.num;
}
 sort(p+1,p+num+1,cmp);

c++头文件:

http://developer.51cto.com/art/201002/183607.htm

vector简单介绍:

 int main()
{
vector<int>v;
int i, t, n;
while(cin>>n)
{
for(i = ; i < n; i++)
{
cin>>t;
v.push_back(t); //vector加入元素
}
sort(v.begin(), v.end()); //vector的sort for(i = ; i < n; i++)
cout<<v[i]<<" "; //vector从0开始
cout<<endl;
}
return ;
}