#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>
using namespace std;
int main()
{
vector<int> ivec;
ivec.push_back(1);
ivec.push_back(2);
ivec.push_back(3);
for (vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)
cout << *iter << ' ';
cout << endl;
while (next_permutation(ivec.begin(), ivec.end())) //next_permutation()是排列组合算法从小到大顺序排列,进行下一个排列
{
for (vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)
cout << *iter << ' ';
cout << endl;
}
cout << endl << endl;
vector<int> ivec2;
ivec2.push_back(3);
ivec2.push_back(2);
ivec2.push_back(1);
for (vector<int>::iterator iter = ivec2.begin(); iter != ivec2.end(); ++iter)
cout << *iter << ' ';
cout << endl;
while (prev_permutation(ivec2.begin(), ivec2.end())) // prev_permutation是从大到小的顺序排列
{
for (vector<int>::iterator iter = ivec2.begin(); iter != ivec2.end(); ++iter)
cout << *iter << ' ';
cout << endl;
}
cout << endl;
return 0;
}
排列组合算法
最新推荐文章于 2019-12-09 19:53:03 发布