设为首页 加入收藏

TOP

C++实现按1的个数排序
2014-11-24 02:31:50 来源: 作者: 【 】 浏览:0
Tags:实现 个数 排序

题目内容:有一些0、1字符串,将其按1的个数的多少的顺序进行输出。


输入描述:本题只有一组测试数据。输入数据由若干数字组成,它是由若干个0和1组成的数字。


输出描述:对所有输入的数据,按1的个数进行生序排序,每行输出一个数字。


题目分析:


(1)定义一个string型向量容器存储输入的数据;定义一个string型变量作为向量容器的元素;定义排序方法,若‘1’的个数不相等则按‘1’的个数从小到大的顺序返回,否则按字符串从小到大的顺序返回


(2)从键盘读入字符串,将读入的每个字符串插入向量容器


(3)对向量容器中的元素按照设定的比较函数进行排序


(4)遍历向量容器并输出每一个元素


参考代码:



#include


#include


#include


#include


#include



using namespace std;


bool myComp(const string &s1,const string &s2)


{


int c1=count(s1.begin(),s1.end(),'1');


int c2=count(s2.begin(),s2.end(),'1');


return c1!=c2 c1

}


int main(int argc,char * argv[])


{


vector vstr;


string str;


while(cin>>str)


{


vstr.push_back(str);


if(cin.get()=='\n')


{


break;


}


}


sort(vstr.begin(),vstr.end(),myComp);


for(vector::iterator it=vstr.begin();it

cout<<*it<

system("pause");


return 0;


}


运行结果:



推荐阅读


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++排列对称串 下一篇C++实现按绩点排名

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: