zoukankan      html  css  js  c++  java
  • 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>

        */


  • 相关阅读:
    UVA 1025 A Spy in the Metro DP水题
    ZOJ 3814 Sawtooth Puzzle BFS
    ZOJ 3816 Generalized Palindromic Number
    UVA 10859 Placing Lampposts 树形DP
    UVA 11825 Hackers' Crackdown 状压DP
    POJ 2887 Big String 线段树 离线处理
    POJ 1635 Subway tree systems Hash法判断有根树是否同构
    BZOJ 3110 k大数查询 & 树套树
    sdoi 2009 & 状态压缩
    来自于2016.2.24的flag
  • 原文地址:https://www.cnblogs.com/boydfd/p/4983157.html
Copyright © 2011-2022 走看看