stable_partition 分类排序

原创 2007年10月08日 10:14:00

 例程

#include <iostream>
#include <algorithm>
#include <functional>
#include <vector>
#include <string>
using namespace std;

class student{
public:
 student(const string &a, int b):name(a), score(b){}
 string name;
 int score;
 bool operator < (const student &m)const {
  return score< m.score;
 }
};
bool pass(student x)
{
 if( x.score >= 60 )
  return true;
 else
  return false;
}

int main() {
 vector< student> vect;
 student st1("Tom", 74);
 vect.push_back(st1);
 st1.name="Jimy";
 st1.score=560;
 vect.push_back(st1);
 st1.name="Mary";
 st1.score=92;
 vect.push_back(st1);
 st1.name="Jessy";
 st1.score=85;
 vect.push_back(st1);
 st1.name="Jone";
 st1.score=560;
 vect.push_back(st1);
 st1.name="Bush";
 st1.score=522;
 vect.push_back(st1);
 st1.name="Winter";
 st1.score=77;
 vect.push_back(st1);
 st1.name="Andyer";
 st1.score=63;
 vect.push_back(st1);
 st1.name="Lily";
 st1.score=76;
 vect.push_back(st1);
 st1.name="Maryia";
 st1.score=89;
 vect.push_back(st1);

 student * re;
 cout<<"------before sort..."<<endl;
 for(int i = 0 ; i < vect.size(); i ++) cout<<vect[i].name<<":/t"<<vect[i].score<<endl;

 //pass 内返回为true的排序后在前面。
 //re 返回的是两部分的交界处值为false的元素,但有可能所有的值都返回true,所以在使用re之前要先进行判断
 re=stable_partition( vect.begin(), vect.end(), pass);
 if(re<vect.end()) //要注意判断  
  cout<<"/n/n/n"<<re->name<<"    "<<re->score <<"/n/n";
 cout <<"-----after sort ...."<<endl;
 for(i = 0 ; i < vect.size(); i ++) cout<<vect[i].name<<":/t"<<vect[i].score<<endl;
 return 0 ;
}

相关文章推荐

std::stable_partition的使用

参考http://www.cpluscpuls.com函数模版:template BidirectionalIterator stable_partition ( Bidirectional...

stable_partition用法

stable_partition function template template BidirectionalIterator stable_partitio...

理解你的排序操作(stable_sort,sort,partial_sort,nth_element,stable_partition,partition)

排序一直是数据结构中的常用算法,STL提供的排序算法非常丰富,如何有效使用就值得探讨。在网上没有找到条款31的翻译,于是我自己翻译了。--Winter 如何进行排序?让我数数有几种方法。 ...

"partition"和“stable_partition”的思考

"partition"和“stable_partition”设计的目的是根据一个谓词而把容器分为两部分。可是他们具体的区别在哪里呢?下面我们来验证一下。 void elimDups(vector &w...

STL之partition和stable_partition

出处:http://blog.csdn.net/kwsy2008/article/details/44343371         [cpp] view plain copy ...

STL algorithm算法partition_point,stable_partition(44)

partition_point原型: std::partition_point template ForwardIterator partition_point (Forward...

STL_算法_重排和分区(random_shuffle、partition、stable_partition)

C++ Primer 学习中。。。   简单记录下我的学习过程 (代码为主) //所有容器适用//所有容器适用 random_shuffle(b,e)       //随机重排 rando...

algorithm库介绍之---- partition()方法和 stable_partition()方法

本文章转载自:ffhajbq特别感谢原作者。 ============================================================================...

partition/stable_partition详解

Partition:将满足条件的元素向前移动. // TEMPLATE FUNCTION partition templateclass _BidIt, class _Pr> inline _...

STL_算法_对所有元素排序(sort、stable_sort)

C++ Primer 学习中。。。   简单记录下我的学习过程 (代码为主) //大部分容器适用、不适用于list容器 sort(b,e) sort(b,e,p) ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:stable_partition 分类排序
举报原因:
原因补充:

(最多只允许输入30个字)