zoukankan      html  css  js  c++  java
  • next_permutation()—遍历全排列

    next_permutation()--遍历全排列


    template <class BidirectionalIterator>
      bool next_permutation (BidirectionalIterator first,
                             BidirectionalIterator last);
    
    
    template <class BidirectionalIterator, class Compare>
      bool next_permutation (BidirectionalIterator first,
                             BidirectionalIterator last, Compare comp);
    

    如果可以继续遍历则返回True,否则返回False,直到数组从增序一直遍历到减序.

    示例:

    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    int main() {
      char arr[] = {'A', 'B', 'C'};
      // int arr[] = {1, 2, 3};
      // string arr[] = {"A", "B", "C"};
    
      sort(arr, arr+3);  
      // 排序保证数组顺序为增序,这样才可以把全排列遍历完.
    
      do {
        cout << arr[0] << arr[1] << arr[2] << endl;
      } while (next_permutation(arr, arr+3));
    
      cout << "After Loop: " << arr[0] << arr[1] << arr[2] << endl;
    
      return 0;
    }
    

    结果:

    ABC
    ACB
    BAC
    BCA
    CAB
    CBA
    After Loop: ABC
    
  • 相关阅读:
    kubernetes_mk_lgg_
    kubernetes_tb宝满
    hcna
    kubernetes_book
    ipset和iptables配合来自动封闭和解封有问题的IP
    microk8s
    iptables
    docker kubernetes Swarm容器编排k8s CICD部署 麦兜
    scala Actor Akka
    数据库——mysql数据类型2
  • 原文地址:https://www.cnblogs.com/bgmind/p/4021229.html
Copyright © 2011-2022 走看看