zoukankan      html  css  js  c++  java
  • 重温《STL源码剖析》笔记 第六、七、八章 next_permutation (字典序)

            源码之前,了无秘密  ——侯杰

    第六章算法

      next_permutation

        比如:01342 -> 01423 -> 01432

        方法:从尾端开始往前寻找两个相邻的元素,令第一个元素为*i,第二个元素为*ii,

          且满足 *i <*ii,找到这样一组相邻元素后,再从最尾端开始往前检验,找到第一

          个大于*i的元素,令为*j,将i,j元素对调,再将ii之后的所有元素颠倒排行,此即

          所求之“下一个”排列组合。

      prev_permutation:类似于next_permutation

    第七章:仿函数

      仿函数:调用者可以像函数一样地被调用,在被调用者则以对象所定义的function call operator

          扮演函数的实质角色。

        实现观点而言,仿函数其实上就是一个”行为类似函数“的对象。为了能够”行为类似函数”,

        其类别定义中必须自定义(或说改写。重载)function call 运算子(operator()),

        拥有这样的运算子后,就可以在仿函数的对象后面加上一对小括号,以此调用仿函数

        所定义的operator()

      算术类仿函数:

      加法:plus<T>

    template<class T>
    Struct plus:public binary_function<T,T,T> {
        T operator()(const T &x, const T &y) const {
            return x+y;
        }

    第八章:配接器

        配接器在STL组件的灵活组合运用功能上,扮演着轴承,转换器的角色。

        将一个class的接口转换为另一个class的接口,使原本接口不兼容而不能合作的

        class,可以一起运作。

      应用于容器(container adapter):queue、 stack

      应用于迭代器(iterator adapters):insert iterators、 reverse iterators、 iostream iterators

      应用于仿函数(function adapters):

  • 相关阅读:
    d2admin框架学习
    手机访问本地配置域名下的项目
    laydate 限制结束日期不能大于起始日期
    学习MVC之租房网站(十一)-定时任务和云存储
    学习MVC之租房网站(十)-预约和跟单
    学习MVC之租房网站(九)-房源显示和搜索
    学习MVC之租房网站(八)- 前台注册和登录
    学习MVC之租房网站(七)-房源管理和配图上传
    《程序员修炼之道》笔记(九)
    《程序员修炼之道》笔记(八)
  • 原文地址:https://www.cnblogs.com/xxiaoye/p/3954104.html
Copyright © 2011-2022 走看看