string.size()
string.erase()
operator:
[]:访问指定位置的字符串
=:赋值
+:连接
== / > ... :按字典序比较两个字符串
>> << :string流的输入输出
getline() :从I/O流读取数据到字符串
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
string nums[23]; //string num[1]是一个字符串
bool cmp(const string &a,const string &b)
{
return a+b>b+a;
//字符串自带 + >
/*
自定义排序函数,这一步非常巧妙,假设a=321,b=32;a+b=32132,b+a=32321这样下面sort排下来就是32>321
避免出现32132>32321的情况
*/
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>num[i];
}
sort(nums,nums+n,cmp);
for(int i=0;i<n;i++)
{
cout<<nums[i];
}
cout<<endl;
return 0;
}
/*
对这个cmp提供我自己的见解:
抛开这道题
如果要求从小到大排序
bool cmp(const string &a,const string &b)
{
return a>b;
}
sort(a,a+n,cmp) 从a到a +n 这n个数,依次比较,当return 值为1时,a排在b前面
类比 当a+b > b+a 时,a排在b前面,类似的道理
*/
原文:https://www.cnblogs.com/serendipity-my/p/12663716.html