您的位置:首页 > 其它

STL常用算法模板

2017-02-27 20:16 211 查看

sort():不赘述

next_permutation():

#include <algorithm>
bool next_permutation(iterator start,iterator end);

参数:

start为第一个元素下标,end为最后一个元素下标的下一位置(与sort同)。

返回值:

当当前序列不存在下一个排列时,函数返回false,否则返回true。

作用:

按字典序(ASCII)求该内存区间的下一个全排列,存储在该段内存上。所谓的下一个,严格来讲,就是对于当前序列pn,他的下一个序列pn+1满足"不存在另外的序列pm,使pn<pm<pn+1"。

另外:

  还可通过编写cmp函数或重载运算符的形式,从而①改变其全排列的方向;②对结构体进行全排列。

示例:

按字典序输出“abc”的所有可能组合

#include <cstdio>
#include <algorithm>
#include <cstring>
#define MAXSIZE 10
using namespace std;

int main(){
char str[MAXSIZE];
int len;
scanf("%s",str);
len=strlen(str);
do{
printf("%s\n",str);
}while (next_permutation(str,str+len));
printf("\n");
return true;
}


prev_permutation(start,end)同理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: