给定一个数组, 任务是使用C ++中的STL打印或显示此数组的所有排列。
例子:
Input: a[] = {1, 2, 3}Output:123132213231312321Input: a[] = {10, 20, 30, 40}Output:102030401020403010302040103040201040203010403020201030402010403020301040203040102040103020403010301020403010402030201040302040103040102030402010401020304010302040201030402030104030102040302010
推荐:请尝试以下方法{IDE}首先, 在继续解决方案之前。方法:数组的下一个可能置换可以使用next_permutation()STL中提供的功能。
语法如下:
bool next_permutation (BidirectionalIterator first, BidirectionalIterator last);
下面是上述方法的实现:
// C++ program to display all permutations
// of an array using STL in C++#include <
bits/stdc++.h>
using namespace std;
// Function to display the array
void display( int a[], int n)
{
for ( int i = 0;
i <
n;
i++) {
cout <
<
a[i] <
<
"" ;
}
cout <
<
endl;
}// Function to find the permutations
void findPermutations( int a[], int n)
{// Sort the given array
sort(a, a + n);
// Find all possible permutations
cout <
<
"Possible permutations are:\n" ;
do {
display(a, n);
} while (next_permutation(a, a + n));
}// Driver code
int main()
{int a[] = { 10, 20, 30, 40 };
int n = sizeof (a) / sizeof (a[0]);
findPermutations(a, n);
return 0;
}
输出如下:
Possible permutations are:102030401020403010302040103040201040203010403020201030402010403020301040203040102040103020403010301020403010402030201040302040103040102030402010401020304010302040201030402030104030102040302010
【在C++中使用STL进行数组的所有排列】被认为是行业中最受欢迎的技能之一, 我们拥有自己的编码基础C ++ STL通过激烈的问题解决过程来训练和掌握这些概念。
推荐阅读
- 希尔密码指南和代码实现详解
- 道德黑客简要概论
- 原型设计和制作模型 – 软件工程
- 算法设计(将所有零移动到数组末尾详细代码实现)
- PHP array_diff_uassoc()函数用法介绍
- JavaScript日期Date对象函数参考
- 35款最佳免费音乐制作软件应用推荐合集(你最喜欢哪个())
- C语言中的wait系统调用详细指南
- Perl构造函数和析构函数用法指南