1、C++自带sort函数用法
sort函数有三个参数:
(1)第一个是要排序的数组的起始地址
(2)第二个是结束的地址(最后一位要排序的地址)
(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。
sort函数使用模板::sort(start,end,排序方法)
第三个参数可以用这样的语句告诉程序你所采用的排序原则
less<数据类型>() //从小到大排序
greater<数据类型>() //从大到小排序
举个栗子:(以字符型为例)
1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 int main() 5 { 6 char a[11]="asdfghjklk"; 7 sort(a,a+10,greater<char>()); 8 for(int i=0;i<10;i++) 9 cout<<a[i]; 10 return 0; 11 }
输出结果: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
1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 string a[25]; 5 6 bool cmp(string a,string b) 7 { 8 return a+b>b+a; 9 } 10 11 int main() 12 { 13 int n,i,j; 14 cin>>n; 15 for(i=0;i<n;i++){ 16 cin>>a[i]; 17 } 18 sort(a,a+n,cmp); 19 for(j=0;j<n;j++){ 20 cout<<a[i]; 21 } 22 cout<<endl; 23 return 0; 24 }