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。
							
		                                                            
						
		
		
		
		
		
		
							
		
				
		
				
	例题:输入n个数字,把奇数和偶数分别放置在容器的左边与右边。
代码:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(int &elem) {return elem%2;}
int main()
{
}
输入:
5
1 2 3 4 5
一个可能的输出:
1 5 3
4 2
为什么输出不是:
1 3 5
2 4
因为这个整理算法并不是一个稳定的算法,如果要保持原来容器的顺序,可以使用stable_partition。

加载中…