C++程序 怎么用set这个功能,把几个不同的名字按从小到大排列呀?比如3个名字cat,appl
C++程序怎么用set这个功能,把几个不同的名字按从小到大排列呀?比如3个名字cat,apple,banana那么用set之后打印出来之后是apple,banana,ca...
C++程序
怎么用set这个功能,把几个不同的名字按从小到大排列呀?比如3个名字cat,apple,banana那么用set之后打印出来之后是apple,banana,cat。
谢谢,我是新手 展开
怎么用set这个功能,把几个不同的名字按从小到大排列呀?比如3个名字cat,apple,banana那么用set之后打印出来之后是apple,banana,cat。
谢谢,我是新手 展开
展开全部
set中自动会按找元素升序排列。
string中有比较大小的<
只需要将字符串按string插入就行了。
代码如下:
#include<iostream>
#include<cstring>
#include<set>
using namespace std;
int main(){
int n;
cout<<"Please input the number of names: ";
cin>>n;
set<string>S;
for(int i=0;i<n;i++){
string tmp;
cout<<"Please input the No."<<i+1<<" name:"<<endl;
cin>>tmp;
S.insert(tmp);
}
cout<<"The result is:"<<endl;
for(set<string>::iterator it=S.begin();it!=S.end();++it) //it是个迭代器
cout<<*(it)<<endl;
return 0;
}
展开全部
//自定义一个类,重载运算符<就行了
#include<cstdio>
#include<cstring>
#include<set>
using namespace std;
struct String
{
char *e;
bool operator<(const String &b) const
{
if(strcmp(e,b.e)<0)
return true;
return false;
}
String(char *a)
{
e=a;
}
};
int main()
{
set<String> s;
s.insert(String("banana"));
s.insert(String("apple"));
s.insert(String("cat"));
for(set<String>::iterator i=s.begin();i!=s.end();i++)
printf("%s\n",*i);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询