cb47a_c++_STL_算法_排列组合next_prev_permutation
cb47a_c++_STL_算法_排列组合next_prev_permutation
使用前必须先排序。必须是 1,2,3或者3,2,1.否者结果不准确。如果, 1,2,4,6.这样数据不会准确
next_permutation()//原始数据是从小到大的, 1,2,3
prev_permutation() //原始数据是从大到小的,比如 3 ,2 ,1,则可以使用这个算法。
3个数字就6种组合。
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
返回值是ture,则还有下一个组合
false,则没有下一个组合了。
/*cb47a_c++_STL_算法_排列组合next_prev_permutation 使用前必须先排序。必须是 1,2,3或者3,2,1.否者结果不准确。如果, 1,2,4,6.这样数据不会准确
next_permutation()//原始数据是从小到大的, 1,2,3
prev_permutation() //原始数据是从大到小的,比如 3 ,2 ,1,则可以使用这个算法。 3个数字就6种组合。
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1 返回值是ture,则还有下一个组合
false,则没有下一个组合了。
*/ #include <iostream>
#include <algorithm>
#include <vector> using namespace std; template <typename TT8>
void print8(TT8 &ivec)
{
for (TT8::iterator iter=ivec.begin();iter!=ivec.end();++iter)
cout << *iter << ' ';
cout << endl;
} int main()
{
vector<int> ivec;
ivec.push_back();
ivec.push_back();
ivec.push_back(); print8(ivec); //next_permutation(ivec.begin(),ivec.end());//1 3 2,第二个组合
//print8(ivec);
//next_permutation(ivec.begin(), ivec.end());//2 1 3 第三个组合
//print8(ivec);
cout << "用循环列出所有的排列组合" << endl;
while (next_permutation(ivec.begin(), ivec.end()))
{
print8(ivec);
}
cout << "---------------" << endl;
vector<int> ivec2;
ivec2.push_back();
ivec2.push_back();
ivec2.push_back();
ivec2.push_back(); print8(ivec2);
cout << "---------------" << endl;
while (prev_permutation(ivec2.begin(), ivec2.end()))
{
print8(ivec2);
} return ;
}
cb47a_c++_STL_算法_排列组合next_prev_permutation的更多相关文章
- cb49a_c++_STL_算法_对所有元素排序_sort_stable_sort
cb49a_c++_STL_算法_对所有元素排序_sort_stable_sort sort(b,e) sort(b,e,p) stable_sort(b,e) stable_sort(b,e,p) ...
- cb51a_c++_STL_算法_根据第n个元素排序nth_element
cb51a_c++_STL_算法_根据第n个元素排序nth_elementnth_element(b,n,e),比如最大的5个数排序,或者最小的几个数nth_element(b,n,e,p)对比:pa ...
- cb50a_c++_STL_算法_局部排序partial_sort
cb50a_c++_STL_算法_局部排序partial_sort partial_sort(b,se,e)排序一部分,begin,source end,endcout << " ...
- cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition
cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition random_shuffle()//重排,随机重排,打乱顺序 partition()分区,把 ...
- cb46a_c++_STL_算法_逆转和旋转reverse_rotate函数advance
cb46a_c++_STL_算法_逆转和旋转reverse_rotateSTL算法--变序性算法reverse() 逆转reverse_copy()一边复制一般逆转rotate()旋转,某个位置开始前 ...
- cb45a_c++_STL_算法_删除_(3)_unique(唯一的意思)删除连续性的重复的数据
cb45a_c++_STL_算法_删除_(3)_unique(唯一的意思)删除连续性的重复的数据unique(b,e),删除连续性的,删除重复的数据,比如如果有两个连续的5,5,则留下一个.uniqu ...
- cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if
cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if remove_copy()//在复制过程中删除一些数据remove_copy_if() 删除性算法: ...
- cb43a_c++_STL_算法_删除_(1)remove_remove_if
cb43a_c++_STL_算法_删除_(1)remove_remove_ifremove()remove_if() 注意:1.并不是真正的删除,而是把后面的元素向前移动,覆盖被删除元素,元素个数并没 ...
- cb42a_c++_STL_算法_替换_replace
cb42a_c++_STL_算法_替换_replacereplace(b,e,ov,nv),ov,old value, nv,new valuereplace_if(b,e,p,v) 根据p的条件,全 ...
随机推荐
- 阿里云ECS封25端口导致wordpress无法发送邮件的解决
在有人评论你的文章,wordpress默认会尝试向博主发送邮件,而如果你用的是阿里云ECS,你会发现评论已经成功了,但是由于邮件发送失败会导致用户评论后页面就卡住了,原因就在于阿里云的ECS目前已经全 ...
- 了解Lombok插件
Lombok是什么 Lombok可以通过注解形式帮助开发人员解决POJO冗长问题,帮助构造简洁和规范的代码,通过注解可产生相应的方法. Lombok如何在IDEA中使用 我们都知道,使用一种工具,一定 ...
- protocbuf的简单理解
之前通信协议替换为protocbuf!新老交替,很多不同看法,也提出来一些负面因数: 1.老的内部通信协议体已经有一段时间了,稳定熟悉! 2.通过通信结构体进行交互,实际上并没有序列化和反序列化的过程 ...
- [COCOS2DX-LUA]0-003.根据COCOS2DX热更新
一.最近有需求就是要基于COCOS2DX-LUA进行游戏的增量更新,找了资料,发现了COCOS2DX有自带一个热更新的类,就是AssetsManager,但是该接口对于我来说有以下的缺陷 1.版本号在 ...
- [Objective-C] 016_UI篇_UIView(上)
在我们使用app时屏幕上能看到的UI元素(按钮,列表,图片...),我们称之为视图,都是继承与UIView,它们通常有着位置,大小,背景颜色等属性,在appl中视图和窗口展示了应用的用户界面,同时负责 ...
- Could not find the Qt platform plugin windows错误解决方法
在PyCharm中运行PyQt5窗口程序时,出现了下图所有的错误提示. 出现该问题的原因是环境变量没有添加. 解决方法:在环境变量中增加:QT_QPA_PLATFORM_PLUGIN_PATH 路径: ...
- SpringBoot--SpringMVC自动配置
SpringMVC自动配置 1.SpringBoot官方文档对SpringMVC的默认配置: Inclusion of ContentNegotiatingViewResolver and BeanN ...
- SpringBoot 2.x 版本以put方式提交表单不生效的问题详解
在使用SpringBoot 2.x版本时,原有springboot 1.x 版本的通过在表单中添加 input框隐藏域指定_method = put 的方式失效. 虽然浏览器传参的确是带上了这个参数, ...
- ms-setting是什么
ms-settings 遇到了两个问题,记录一下 1)windows桌面右键菜单-->显示设置或者个性化-->报错:ms-settings:personalization-backgrou ...
- 我眼中的华为公有云AI平台--ModelArts
前言 AWS Sagemaker has been a great deal for most data scientists who would want to accomplish a truly ...