1.如何让字符串长度从小到大排序
该方法缺点:相同长度时,不能按字典序排序
格式:
sort(first_pointer, first_pointer + n, compare)
即sort(a, a + n, compare);
此处注意一下:compare是一个函数,需要手写并调用
具体代码如下
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
bool compare(string a, string b)
{
return a.length() < b.length();
}
int main()
{
string a[3];
for(int i = 0; i < 3; i ++)
cin >> a[i];
sort(a, a + 3, compare); //此处
for(int i = 0; i < 3; i ++)
cout << a[i] << endl;
return 0;
}
2.如何让字符串的长度从大到小排序
sort(first_pointer, first_pointer + n, cmp)
即sort(a, a + n, cmp);
同理,也
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
bool cmp(string a, string b)
{
return a.length() > b.length();
}
int main()
{
string a[3];
for(int i = 0; i < 3; i ++)
cin >> a[i];
sort(a, a + 3, cmp); //此处
for(int i = 0; i < 3; i ++)
cout << a[i] << endl;
return 0;
}
要自己手写一个cmp函数并调用
3.让字符串按照字典序排序
缺点:不考虑字符串长度的比较
sort(first_pointer, first_pointer + n)
即 sort(a, a + n)
#include<iostream> #include<algorithm> #include<string> using namespace std; int main() { string a[3]; for(int i = 0; i < 3; i ++) cin >> a[i]; sort(a, a + 3); //此处 for(int i = 0; i < 3; i ++) cout << a[i] << endl; return 0; }