设为首页 加入收藏

TOP

C++ STL algorithm库中 next_permutation()用法 注意事项
2014-11-24 07:43:32 来源: 作者: 【 】 浏览:0
Tags:STL algorithm 库中 next_permutation 用法 注意事项

有的人用C++ algorithm库中的next_permutation()函数得到全排列时发现最后得到的全排列老是不够数,不知道为什么,还以为标准库函数有错呢,其实这个标准库函数是有前置条件的,即参数必须是为非降序排列的。


至于为什么,我们看下边。

next_permutation()函数对参数进行下一个排列,如果到头了返回false,否则返回true,

但是它怎么知道排列到头了呢,原来他是按照增序对参数的每一个值进行排列的,如果参数为完全降序的话,就认为到头了,会返回false。


所以我们在求排列的时候一定要先进行升序排序,这样才能正确的得到所有的排列方式。


如string s="bca";


sort(s.begin(),s.end());

cout<
while(next_permutation(s))

{

cout<
}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux ps state sl+是什么意思 下一篇C++ STL next_permutation的实现..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·PostgreSQL 索引 - (2025-12-25 22:20:43)
·MySQL Node.js 连接 (2025-12-25 22:20:41)
·SQL 撤销索引、表以 (2025-12-25 22:20:38)
·Linux系统简介 (2025-12-25 21:55:25)
·Linux安装MySQL过程 (2025-12-25 21:55:22)