加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C++学习【原创】partition函数的应用

(2012-01-28 11:43:13)
标签:

容器

函数参数

算法

偶数

奇数

it

分类: Cpp学习
partition函数的作用是:将容器根据程序员的要求 划分成两个部分,属于整理算法。函数参数:partition(first,last,compare);//first为容器的首迭代器,last为容器的末迭代器,compare为比较函数(不可略写)。函数返回值:两个集合的分界处。

例题:输入n个数字,把奇数和偶数分别放置在容器的左边与右边。
代码:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(int &elem) {return elem%2;}
int main()
{
    vector <int> V;
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        int t;
        cin>>t;
        V.push_back(t);
    }
    vector <int> ::iterator it=partition(V.begin(),V.end(),compare);
    for(vector <int> ::iterator iter=V.begin();iter!=it;iter++)
        cout<<*iter<<" ";cout<<endl;
    for(;it!=V.end();it++)
        cout<<*it<<" ";cout<<endl;
    return 0;
}
输入:
5
1 2 3 4 5
一个可能的输出:
1 5 3
4 2

为什么输出不是:
1 3 5
2 4
因为这个整理算法并不是一个稳定的算法,如果要保持原来容器的顺序,可以使用stable_partition。


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有