1、C++自带sort函数用法
sort函数有三个参数:
(1)第一个是要排序的数组的起始地址
(2)第二个是结束的地址(最后一位要排序的地址)
(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。
sort函数使用模板::sort(start,end,排序方法)
第三个参数可以用这样的语句告诉程序你所采用的排序原则
less<数据类型>() //从小到大排序
greater<数据类型>() //从大到小排序
举个栗子:(以字符型为例)
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
char a[]="asdfghjklk";
sort(a,a+,greater<char>());
for(int i=;i<;i++)
cout<<a[i];
return ;
}
输出结果:slkkjhgfda
2、string的特殊用法
string a="12";
string b="34";
string a+b="1234";
string b+a="3412";
3、1806最大数
题目描述 Description
设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。
输入描述 Input Description
第一行一个正整数n。
第二行n个正整数,空格隔开。
输出描述 Output Description
连接成的多位数。
样例输入 Sample Input
Sample 1:
3
13 312 343
Sample 2:
4
7 13 4 246
样例输出 Sample Output
Sample 1:
34331213
Sample 2:
7424613
数据范围及提示 Data Size & Hint
n≤20
#include<iostream>
#include<algorithm>
using namespace std;
string a[]; bool cmp(string a,string b)
{
return a+b>b+a;
} int main()
{
int n,i,j;
cin>>n;
for(i=;i<n;i++){
cin>>a[i];
}
sort(a,a+n,cmp);
for(j=;j<n;j++){
cout<<a[i];
}
cout<<endl;
return ;
}