C++:容器多次排序

问题

读起来比较绕口,看下后面的效果图便于理解.

编写程序,使用stable_sort和isshorter[排序]将传递给你
的elim版本的vector排序.并打印vector.

——————————————

将vector中的元素按字典顺序重排,并消除重复单词.
//按长度重新排序,长度相同的单词维持字典顺序.

C++.
image-2096

源代码


/*************************************************************************
> 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() &ve)
{
cout << "********************" << endl; for(const auto &s:ve) { cout << s << endl; } cout << "********************" << endl; } //主要. void elim(vector &vec)
{
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 vec;
string pa;
while(cin >> pa)
{
vec.push_back(pa);
}
elim(vec);
return 0;
}

运行效果图

C++运行结果
image-2097

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据