string陣列的字典序排列 C++
阿新 • • 發佈:2021-01-24
#include <iostream>
#include <string>
#include<vector>
#include<algorithm>
using namespace std;
template<typename T >
void fun(T val)
{
cout << val << endl;
}
bool cmp(string s1, string s2)
{
if (s1.size() != s2.size())
return s1. size() > s2.size(); //長度長的字元排在前面
else
return s1.compare(s2)==-1 ? true:false;
// compare說明
// 兩個字串相同,返回0。
// 呼叫字串小與被呼叫字串,返回 - 1。如abc小於abd
// 呼叫字串大於被呼叫字串,返回1。
}
int main()
{
vector<string> vec = { "abcdf","aaaer","abcda","qweqeqeqe" };
sort(vec.begin (), vec.end(), cmp);
for_each(vec.begin(), vec.end(), fun<string>);
return 0;
}
測試結果