zoukankan      html  css  js  c++  java
  • Visual C++ Standard Library:next_permutation

    对一个范围内的数据进行递增式的全排列。

    template<class BidirectionalIterator>
       bool next_permutation(
          BidirectionalIterator _First,
          BidirectionalIterator _Last
       );
    template<class BidirectionalIterator, class BinaryPredicate>
       bool next_permutation(
          BidirectionalIterator _First,
          BidirectionalIterator _Last,
          BinaryPredicate _Comp
       );

    以上是他的两个重载函数接口定义。很类似于sort函数,C++STL中大多数这种比较函数都提供第二个版本,方便使用者自己定义比较函数。

    参数说明:

    _First:数据的起始位置;_Last:数据终止位置;_Comp:函数指针。

    备注:

    字典排序,保证了这个函数会生成一个最小递增的排序集合。

    相应的,在程序库中还有一个prev_permutation函数。顾名思义,大家自己可以查阅下。

    例示程序:

    #include <iostream>
    #include <vector>
    #include <algorithm>

    using namespace std;

    int main()

     vector<int> coll;
     for (int i=1;i<=9;++i)
      coll.push_back(i);

    do
     {

    for (int i=1;i<=9;++i)

    cout<<coll[i];

    cout<<endl;

    }while (next_permutation(coll.begin(),coll.end()));

    return 0;

    }

    生成了1...9的所有全排列。

  • 相关阅读:
    javascript HTML DOM
    js 同步异步阻塞非阻塞非原创
    端口规范
    SASS用法指南
    整合js,css文件
    HTTP状态码大全
    控制移动端页面的缩放(meta)
    移动端最小以及最大的宽度
    H5手机端关注的问题
    javascript高级编程3第三章:基本概念 本章内容 语法 数据类型 流控制语句 函数
  • 原文地址:https://www.cnblogs.com/wxfasdic/p/1442776.html
Copyright © 2011-2022 走看看