全排列函式next_permutation在STL的使用
對於next_permutation函式,其函式原型為:
#include <algorithm>
bool next_permutation(iterator start,iterator end)
噹噹前序列不存在下一個排列時,函式返回false,否則返回true
我們來看下面這個例子:
- #include <iostream>
- #include <algorithm>
- using namespace std;
- int main()
- {
- int num[3]={1,2,3};
- do
- {
- cout<<num[0]<<" "<<num[1]<<" "<<num[2]<<endl;
- }while(next_permutation(num,num+3));
- return 0;
- }
輸出結果為:
當我們把while(next_permutation(num,num+3))中的3改為2時,輸出就變為了:
由此可以看出,next_permutation(num,num+n)函式是對陣列num中的前n個元素進行全排列,同時並改變num陣列的值。
另外,需要強調的是,next_permutation()在使用前需要對欲排列陣列按升序排序,否則只能找出該序列之後的全排列數。比如,如果陣列num初始化為2,3,1,那麼輸出就變為了:
相關文章
- next_permutation函式函式
- 淺析stl仿函式函式
- STL容器的各個函式方法函式
- 字串的全排列字串
- min_element 函式的 STL 範例函式
- 字串全排列字串
- 在 bash 中使用函式函式
- stl中的sort函式,你真的瞭解嗎函式
- 有重複元素的全排列
- stl中各種容器的自定義比較函式函式
- 全排列演算法演算法
- Java實現-全排列Java
- 演算法——全排列演算法
- [演算法] 固定的元素在固定長度上進行全排列演算法
- javascript函式全解JavaScript函式
- C++(STL原始碼):37---仿函式(函式物件)原始碼剖析C++原始碼函式物件
- C++ 11 - STL - 函式物件(Function Object) (下)C++函式物件FunctionObject
- Sql Server函式全解(1):字串函式SQLServer函式字串
- Sql Server函式全解(一)字串函式SQLServer函式字串
- 實現自然數N的全排列
- Day 28 | 491.遞增子序列 、46.全排列、 47.全排列 II
- 在Excel中如何使用TEXT函式?Excel函式
- Sql Server函式全解(2):數學函式SQLServer函式
- Sql Server函式全解(5):系統函式SQLServer函式
- 【Algorithm】全排列演算法Go演算法
- JavaScript陣列元素全排列JavaScript陣列
- 字串全排列 java實現字串Java
- 分析函式——排序排列(rank、dense_rank、row_number)函式排序
- next_permutation
- 函式: 函式是怎麼使用的?函式
- Sql Server函式全解(五)之系統函式SQLServer函式
- 前端電商 sku 的全排列演算法前端演算法
- 全排列演算法的JS實現演算法JS
- 8、在Shell指令碼中使用函式指令碼函式
- 【leetcode】60. Permutation Sequence 全排列的第k位序的排列形式LeetCode
- Leetcode——46. 全排列LeetCode
- 【LeetCode】46. 全排列LeetCode
- leetcode:全排列(java回溯)LeetCodeJava