我是靠谱客的博主 失眠红牛,最近开发中收集的这篇文章主要介绍使用vector list等容器对字符串的排序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

/**codeblock 测试通过**/
#include <iostream>
#include <string>
#include <set>
#include <list>
#include <vector>
#include <iterator>
#include <algorithm>
#include <fstream>
using namespace std;
string & toLower(string &st);
void output(string n){
cout<<n<<"
";
}
int main(){
string outfile = "result.txt";
//fstream ifn
ofstream fout(outfile.c_str(),ios_base::out|ios_base::app);
// ofstream fout(outfile.c_str())
if(!fout){
cerr<<"Can't open the file "<<outfile<<endl;
return EXIT_FAILURE;
}
vector<string> one,two;
string name;
cout<<"请输入姓名:";
while(cin>>name&&name!="quit"){
one.push_back(name);
}
/*do{
cin>>name;
one.push_back(name);
}while(name!="quit");*/
//会包含 quit
cout<<endl;
sort(one.begin(),one.end());
for_each(one.begin(),one.end(),output);
cout<<endl;
cout<<"请输入姓名:";
while(cin>>name&&name!="quit"){
two.push_back(name);
}
sort(two.begin(),two.end());
for_each(two.begin(),two.end(),output);
cout<<endl;
cout<<"合并名单:";
vector<string> three(two);
three.insert(three.end(),one.begin(),one.end());
for_each(three.begin(),three.end(),output);
//正向显示
for_each(three.rbegin(),three.rend(),output);
//逆向显示
cout<<endl;
cout<<"排序一:";
sort(three.begin(),three.end());
vector<string>::iterator it = unique(three.begin(),three.end());
if(it != three.end())
three.erase(it,three.end());
//
for_each(three.begin(),three.end(),output);
cout<<endl;
cout<<"排序二:";
//使用list
list<string> four;
four.insert(four.begin(),three.begin(),three.end());
four.sort();
//排序
four.unique();
//去重
for_each(four.begin(),four.end(),output);
cout<<endl<<"排序三:";
//使用set容器
set<string> five(three.begin(),three.end());
for_each(five.begin(),five.end(),output);
fout<<"the finnally1 list is:";
vector<string>::iterator pd;
for(pd=three.begin();pd!=three.end();pd++){
fout<<*pd<<"
";
}
fout<<endl;
fout<<"the finnally2 list is:";
list<string>::iterator pi;
while(!four.empty()){
for(pi=four.begin();pi!=four.end();pi++)
fout<<*pi<<" ";
four.pop_front();
fout<<endl;
}
cout<<endl;
fout.close();
return 1;
}

使用vector时,发现vector在使用unique()不会自动截去重复的部分,需要自己添加代码去掉重复部分,list会自动截去重复部分。

最后

以上就是失眠红牛为你收集整理的使用vector list等容器对字符串的排序的全部内容,希望文章能够帮你解决使用vector list等容器对字符串的排序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部