C++ STL 快速实现全排列

目的

输入n个数,对这n个数进行全排列。

样例输入

3

3 2 1

样例输出

1 2 3

1 3 2

2 1 3

2 3 1

3 1 2

3 2 1

实现

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

const int N = 10;


int main() {
	int n, a[N];
	cin >> n;
	for (int i = 1; i <= n; i++)
		cin >> a[i];
	sort(a + 1, a + n + 1);
	do {
		for (int i = 1; i <= n; i++) {
			if (i != 1)			
				cout << " ";
			cout << a[i];
		}
		cout << endl;
	} while (next_permutation(a + 1, a + n + 1));
	return 0;
}

利用STL库里的next_permutation函数实现数组或者容器的全排列。

cpp 复制代码
next_permutation(起始地址, 终点位置); // 执行一次可以更改一次数组的内容,即改变至下一种排列
相关推荐
故事和你9113 小时前
洛谷-算法2-3-分治与倍增5
开发语言·数据结构·c++·算法·动态规划·图论
charlie11451419113 小时前
通用GUI编程技术——图形渲染实战(三十九)——纹理与采样器:从WIC加载到GPU渲染
开发语言·c++·图形渲染·win32
北顾笙98013 小时前
day37-数据结构力扣
数据结构·算法·leetcode
啦啦啦_999913 小时前
1. 逻辑回归
算法·机器学习·逻辑回归
郭涤生13 小时前
std::condition_variable的使用及主要事项
开发语言·c++
小菜鸡桃蛋狗13 小时前
C++——list
开发语言·c++
handler0113 小时前
Git 核心指令速查
linux·c语言·c++·笔记·git·学习
fish_xk13 小时前
c++中的多态
c++
汉克老师13 小时前
GESP2025年6月认证C++五级( 第三部分编程题(1、奖品兑换))
c++·二分算法·gesp5级·gesp五级
Lhan.zzZ13 小时前
笔记_2026.4.28_003
c++·笔记·qt·opencv