stl源码剖析 详细学习笔记 算法总览

 

    //****************************基本算法*****************************

    /*

                stl算法总览,不在stl标准规格的sgi专属算法,都以 *加以标记

        算法名称              算法用途         质变                   所在文件

        accumulate          元素累计            否                   <stl_numeric.h>

        adjacent_difference 相邻元素的差额       是 if in-place       <stl_numeric.h>

        adjacent_find       查找相邻而重复       否                   <stl_algo.h>

                         (或符合某条件)的元素

        binary_search       二分查找            否                   <stl_algo.h>

        Copy                复制               是 if in-place       <stl_algobase.h>

        Copy_backward      逆向复制             是 if in-place       <stl_algobase.h>

        Copy_n *            复制n个元素         是 if in-place       <stl_algobase.h>

        count               计数               否                   <stl_algo.h>

        count_if            在特定条件下计数     否                   <stl_algo.h>

        equal            判断两个区间是否相等     否                   <stl_algobase.h>

        equal_range      试图在有序区间中寻找

                        某值(返回一个上下限区间)  否                    <stl_algo.h>

        fill                改填元素值          是                    <stl_algobase.h>

        fill_n              改填元素值,n次      是                    <stl_algobase.h>

        find                循序查找            否                   <stl_algo.h>

        find_if         循序查找符合特定条件者    否                    <stl_algo.h>

        find_end        查找某个子序列的最后      否                   <stl_algo.h>

                           一次出现点

        find_first_of   查找某些元素的首次出现点   否                   <stl_algo.h>

        for_each        对区间内的每一个元素施行   否                   <stl_algo.h>

                            某操作

        generate        以特定操作之运算结果      是                   <stl_algo.h>

                        填充特定区间内的元素

        generate_n      以特定操作之运算结果      是                   <stl_algo.h>

                            填充n个元素

        includes        是否涵盖于某序列之中      否                   <stl_algo.h>

        inner_product       内积               否                   <stl_numeric.h>

        inplace_merge   合并并就地替换(复写上去)  是                   <stl_algo.h>

        iota *          在某区间填入某指定值的    是                   <stl_numeric.h>

                            递增序列

        is_heap *       判断某区间是否为一个heap  否                   <stl_algo.h>

        is_sorted *     判断某区间是否已排序      否                   <stl_algo.h>

        iter_swap           元素互换            是                   <stl_algobase.h>

        lexicograpghical_  以字典顺序进行比较     否                  <stl_numeric.h>

        compare

        lower_bound     将指定元素插入区间之内     否                   <stl_algo.h>

                    而不影响区间之原本排序的最低位置

        max                 最大值              否                   <stl_algobase.h>

        max_element       最大值所在位置         否                    <stl_algo.h>

        merge               合并两个序列         是 if in-place        <stl_algo.h>

        min                 最小值              否                    <stl_algobase.h>

        min_element       最小值所在位置         否                    <stl_algo.h>

        mismatch            找出不匹配点         否                    <stl_algobase.h>

        next_permutation    获得下一个排列组合    是                    <stl_algo.h>

        nth_element     重新安排序列中的第n个     是                    <stl_algo.h>

                            元素的左右两端

        partial_sort        局部排序            是                    <stl_algo.h>

        partial_sort_copy  局部排序并复制到他处   是 if in-place        <stl_algo.h>

        partial_sum         局部求和            是 if in-place        <stl_numeric.h>

        partition           分割               是                    <stl_algo.h>

        prev_permutation    获得前一个排列组合   是                     <stl_algo.h>

        power *             幂次方。表达式可指定  否                    <stl_numeric.h>

        random_suffle       随即重排元素         是                    <stl_algo.h>

        random_sample *     随即取样            是 if in-place        <stl_algo.h>

        random_sample_n *   随即取样            是 if in-place        <stl_algo.h>

        remove           删除某类元素(但不删除)   是                    <stl_algo.h>

        remove_copy      删除某类元素并将结果     是                    <stl_algo.h>

                           复制到另一个容器

        remove_if          有条件地删除某类元素   是                    <stl_algo.h>

        remove_copy_if   有条件地删除某类元素并将  是                    <stl_algo.h>

                            结果复制到另一个容器

        replace             替换某类元素         是                    <stl_algo.h>

        replace_copy     替换某类元素,并将结果    是                    <stl_algo.h>

                            复制到另一个容器

        replace_if          有条件地替换         是                    <stl_algo.h>

        replace_copy_if  有条件地替换,并将结果    是                    <stl_algo.h>

                            复制到另一个容器

        reverse              反转元素次序        是                    <stl_algo.h>

        reverse_copy     反转元素次序并将结果      是                   <stl_algo.h>

                            复制到另一个容器

        rotate                  旋转            是                    <stl_algo.h>

        rotate_copy       旋转,并将结果复制到     是                    <stl_algo.h>

                              另一个容器

        search              查找某个子序列        否                    <stl_algo.h>

        search_n         查找连续发生n次的子序列   否                    <stl_algo.h>

        set_difference       差集               是 if in-place        <stl_algo.h>

        set_intersection     交集               是 if in-place        <stl_algo.h>

        set_symmetric_      对称差集             是 if in-place        <stl_algo.h>

        difference

        set_union            并集               是 if in-place        <stl_algo.h>

        sort                 排序               是                    <stl_algo.h>

        stable_partition 分割并保持元素的相对次序   是                    <stl_algo.h>

        stable_sort      排序并保持等值元素的      是                    <stl_algo.h>

                            相对次序

        swap               交换(对调)            是                    <stl_algobase.h>

        swap_ranges         交换(指定区间)        是                    <stl_algo.h>

        transform         以两个序列为基础,交互    是                    <stl_algo.h>

                            作用产生第三个序列

        unique            将重复的元素折叠缩编,    是                    <stl_algo.h>

                              使成唯一

        unique_copy       将重复的元素折叠缩编,    是 if in-place        <stl_algo.h>

                          使成唯一,并复制到他处

        upper_bound      将指定元素插入区间之内     否                    <stl_algo.h>

                         而不影响区间之原本排序

                            的最高位置

        make_heap           制造一个heap         是                    <stl_heap.h>

        pop_heap           从heap取出一个元素     是                    <stl_heap.h>

        push_heap          将元素推进heap内       是                    <stl_heap.h>

        sort_heap           对heap排序           是                    <stl_heap.h>

    */


posted @ 2015-03-28 22:12  boydfd  阅读(311)  评论(0)    收藏  举报