当前位置: 首页 > 编程笔记 >

C ++程序在STL中实现Next_Permutation

夏侯弘光
2023-03-14
本文向大家介绍C ++程序在STL中实现Next_Permutation,包括了C ++程序在STL中实现Next_Permutation的使用技巧和注意事项,需要的朋友参考一下

STL中的next_permutation用于将[first,last]范围内的元素重新排列到下一个字典上更大的排列。排列是N的每一个!元素可以采取的可能安排。这是C ++程序,用于在STL中实现Next_permutation。

算法

Begin
   Define one integer array variable elements[].
   Get the number of data e from the user.
   Initialize the array elements[] with e number of data from the keyboard.
   Sort all the array elements.
   do
      show(elements, e) //to display the current content of the array
   while (next_permutation(elements, elements + e))
End

范例程式码

#include<iostream>
#include <algorithm>
using namespace std;
void show(int a[], int n) {
   for(int i = 0; i < n; i++) {
      cout<<a[i]<<" ";
   }
   cout<<endl;
}
int main () {
   int e, i;
   cout<<"Enter number of elements to be inserted: ";
   cin>>e;
   int elements[e];
   for (i = 0; i < e; i++) {
      cout<<"Enter "<<i + 1<<" element: ";
      cin>>elements[i];
   }
   sort (elements, elements + e);
   cout << "The "<<e<<"! possible permutations with ";
   cout<<e<<" elements: "<<endl;
   do {
      show(elements, e);
   }
   while (next_permutation(elements, elements + e));
   return 0;
}

输出结果

Enter number of elements to be inserted: 4
Enter 1 element: 7
Enter 2 element: 6
Enter 3 element: 2
Enter 4 element: 10
The 4! possible permutations with 4 elements:
2 6 7 10
2 6 10 7
2 7 6 10
2 7 10 6
2 10 6 7
2 10 7 6
6 2 7 10
6 2 10 7
6 7 2 10
6 7 10 2
6 10 2 7
6 10 7 2
7 2 6 10
7 2 10 6
7 6 2 10
7 6 10 2
7 10 2 6
7 10 6 2
10 2 6 7
10 2 7 6
10 6 2 7
10 6 7 2
10 7 2 6
10 7 6 2
 类似资料:
  • 本文向大家介绍C ++程序在STL中实现Prev_Permutataion,包括了C ++程序在STL中实现Prev_Permutataion的使用技巧和注意事项,需要的朋友参考一下 STL中的Prev_permutation用于将范围[first,last]中的元素重新排列到先前的字典上较小的排列。排列是N的每一个!元素可以采取的可能安排。这是一个在STL中实现Prev_permutation的

  • 本文向大家介绍C ++程序在STL中实现堆栈,包括了C ++程序在STL中实现堆栈的使用技巧和注意事项,需要的朋友参考一下 堆栈是遵循特定操作顺序的线性数据结构。订单可以是FILO(先进先出)或LIFO(先进先出) 算法 范例程式码 输出结果

  • 本文向大家介绍在STL中实现Vector的C ++程序,包括了在STL中实现Vector的C ++程序的使用技巧和注意事项,需要的朋友参考一下 向量具有在插入或删除元素时自动像动态数组一样自动调整大小的能力,容器可以自动处理其存储。矢量元素放置在连续的存储中,以便可以使用迭代器对其进行访问和遍历。可以在向量的开头,中间或结尾插入或删除数据。 功能和说明: 范例程式码 输出结果

  • 本文向大家介绍在STL中实现集的C ++程序,包括了在STL中实现集的C ++程序的使用技巧和注意事项,需要的朋友参考一下 Set是抽象数据类型,其中每个元素都必须是唯一的,因为元素的值可以标识它。一旦将元素的值添加到集合中,就无法对其进行修改,但是可以删除并添加该元素的修改后的值。 功能和说明: 范例程式码 输出结果

  • 本文向大家介绍C ++程序在STL中实现队列,包括了C ++程序在STL中实现队列的使用技巧和注意事项,需要的朋友参考一下 队列是遵循先进先出(FIFO)顺序的线性结构,在该顺序中,对队列的元素执行操作。 算法 范例程式码 输出结果

  • 本文向大家介绍在STL中实现Priority_queue的C ++程序,包括了在STL中实现Priority_queue的C ++程序的使用技巧和注意事项,需要的朋友参考一下 优先级队列是一种容器适配器,其中队列的第一个元素是队列中所有元素中最大的。元素在优先级队列中的顺序也不减。在优先级队列中,高优先级的元素在低优先级的元素之前得到服务。 功能和说明: 范例程式码 输出结果