需求说明:
一个保存多个字符串的vector容器,对其实现排序/去重,并且要求排序的时候先按长度排序,长度相同的再按照字典排序。
示例代码:
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
//按长度排
bool isShorter( const string &strSouce, const string &strDest )
{
return strSouce.size() < strDest.size();
}
//先按长度排,再按字典排
void Sort_vector( vector<string> &sVec )
{
sort( sVec.begin(), sVec.end() );
auto endIter = unique( sVec.begin(), sVec.end() );
sVec.erase( endIter, sVec.end() );
stable_sort( sVec.begin(), sVec.end(), isShorter ); //比较函数的参数需要是const类型
}
//by zhaocl
int main()
{
vector<string> strVec = { "aaa", "ccc", "ccc", "bbbb", "aaaa" };
Sort_vector( strVec );
for( auto s : strVec )
{
cout << s << endl;
}
system( "pause" );
return 0;
}
结果示图: