首页 > 编程语言 >C++排列函数

C++排列函数

时间:2022-12-21 14:35:40浏览次数:60  
标签:begin 排列 end 函数 arr C++ 次序 permutation

https://blog.csdn.net/m0_37890541/article/details/105104045

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int MAXN = 6;
char arr[MAXN];

int main ()
{
	while (cin >> arr) {
		sort(arr, arr + strlen(arr));							// 输入字符串先按升序排好
		cout << arr << endl;									
		while (next_permutation(arr, arr + strlen(arr))) {		// 求全排列 
			cout << arr << endl;
		}		
		cout << endl;	
	}
	return 0;
}

例:
输入:abc
输出:abc acb bac bca cab cba		// 偷懒~~未换行

“下一次排序”:在字典次序中,当前排列的下一个排列,比如:{a,b,c,d}的下一次排序为{a,b,d,c}
“上一次排序”:在字典次序中,当前排列的上一个排列,比如:{a,b,d,c}的下一次排序为{a,b,c,d}

bool next_permutation(begin, end)		// 函数会改变[begin,end)区间内元素次序,使它们符合"下一次排列次序",默认为按字典次序升序

bool next_permutation(begin, end, op)	// op为自定义排列次序

bool prev_permutation(begin, end)		// 函数会改变[begin,end)区间内元素次序,使它们符合"上一次排列次序",默认为按字典次序升序

bool prev_permutation(begin, end, op)	// op为自定义排列次序

若要实现全排列,首先必须要对初始序列进行排序,使之成为字典次序中的第一个排列方式或最后一个排列方式,否则next_permutation() 函数和prev_permutation() 函数只能给出当前序列的下一个或上一个。

标签:begin,排列,end,函数,arr,C++,次序,permutation
From: https://www.cnblogs.com/Szang/p/16996187.html

相关文章

  • C# 类的构造函数以及析构函数
    类的构造函数以及析构函数构造函数在类初始化的时候被调用,可以方便提前传参。usingSystem;namespaceMyNameSpace{classDemo{privatedoubleleng......
  • C++ 犯错修改指南
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录​​前言​​​​2.SegmentationFault​​​​3.symbollookuperror:xxxundefinedsymbolxxx......
  • MySQL 判断语句 条件函数 case when、if、ifnull
    在MySQL中,需要用到条件判断函数,例如casewhen、if、ifnull。一、方法分类二、具体方法(1)ifif(expr,result_true,result_false)注意:一个条件表达式两个结果expr......
  • CMU15-445_Project 1:C++Primer
    Project1:C++Primer先开一个坑1.Abstractabstract2.IntroductionintroPreparationtools3.ImplementationTask#1-TemplatedTrieHeadfileTrieNodeCl......
  • 剑指 Offer 38 字符串的排列
    剑指Offer38|字符串的排列输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s="abc"输出:["......
  • SQL存储过程与自定义函数
    --execsp_databases--execsp_helpdbmaster--execsp_renamedb原名,新名--go--系统命令的改变/*execsp_configure'showadvancedoptions',1goreconfigureexecsp_conf......
  • Python中的sorted()函数
    sorted()函数的主要用法>>>list=[1,3,2,4]#输入>>>sorted(list)#输入[1,2,3,4]#输出默认升序排列>>>sorted(list,reverse=True)#输入#降序排列[4,3,2,1......
  • C++primer:Sec 1, 2, 3
    目录Sec1BeginSec2变量和基本类型2.1基本内置类型2.2变量2.3复合类型(CompoundType)2.4const限定符2.5处理类型Sec3字符串、向量和数组3.1using3.2string:3.3......
  • vuex辅助函数使用
    辅助函数的认识:vuex的辅助函数有4个:mapState,mapGetters,mapMutations,mapActions辅助函数的写法:1、在页面引入import{mapState,mapGetters,mapMutatio......
  • [js] 回调函数
    回调函数:在一个函数程序中以函数名称作为参数调用另一个函数程序,称为回调函数原因:1,不知道什么时候执行2,不知......