问题
读起来比较绕口,看下后面的效果图便于理解.
编写程序,使用stable_sort和isshorter[排序]将传递给你
的elim版本的vector排序.并打印vector.
——————————————
将vector中的元素按字典顺序重排,并消除重复单词.
//按长度重新排序,长度相同的单词维持字典顺序.
源代码
/*************************************************************************
> File Name: test.10.11.cpp
> Author: puruidong
> Mail: 1@w1520.com
> Created Time: 2014年06月11日
************************************************************************/
#include
#include
#include
using namespace std;
/***************************
编写程序,使用stable_sort和isshorter[排序]将传递给你
的elim版本的vector排序.并打印vector.
------------------------------------------
将vector中的元素按字典顺序重排,并消除重复单词.
//按长度重新排序,长度相同的单词维持字典顺序.
************************************/
//比较两个大小.
bool isshort(const string &s1,const string &s2)
{
return s1.size()
{
cout << "********************" << endl;
for(const auto &s:ve)
{
cout << s << endl;
}
cout << "********************" << endl;
} //主要.
void elim(vector
{
cout << "未做任何操作之前:" << endl;
out(vec);
//排序并去掉重复的单词.
sort(vec.begin(),vec.end());
auto re=unique(vec.begin(),vec.end());
cout << "排序后[已经将重复的单词移到尾部]:" << endl;
out(vec);
vec.erase(re,vec.end());
stable_sort(vec.begin(),vec.end(),isshort);
cout << "最终结果:" << endl;
out(vec);
} int main()
{
cout << "无重复字符,按照字典顺序、字符长度顺序排序[输入单词]:" << endl;
vector
string pa;
while(cin >> pa)
{
vec.push_back(pa);
}
elim(vec);
return 0;
}