// stable_partition.cpp --2011-10-02-22.39
#include "stdafx.h"
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
using std ::vector ;
using std ::greater ;
int _tmain(int argc, _TCHAR* argv[])
{
int arr1[] = {1, 2, 3, 4, 5, 1, 8, 9} ;
vector<int> vec1(arr1, arr1 + sizeof arr1 / sizeof (int)) ;
// stable_partition (beg, end, unaryPred) ;
// 操作前:[beg,end)标示输入序列.unaryP是一元函数对象.
// 操作后:使用unaryP划分输入序列.使unaryPred返回true的元素放在序列的开头.
// 使unaryPred为假的元素放在序列末尾.
// 返回值:返回一个迭代器,该迭代器指向使unaryPred为真的最后元素的下一个位置.
// 备注: 此划分算法为稳定算法.
vector<int> ::iterator resultIter = stable_partition(vec1.begin(), vec1.end(), bind2nd(greater<int> (), 4)) ;
vector<int> ::iterator beg = vec1.begin() ;
while (beg != resultIter)
{
std ::cout << *beg << " " ;
++beg ;
}
std ::cout << std ::endl ;
while (beg != vec1.end())
{
std ::cout << *beg << " " ;
++beg ;
}
std ::cin.get() ;
return 0 ;
}
stable_partition
最新推荐文章于 2024-04-30 09:00:00 发布