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>

*/


上一篇:IOS UI-控制器的创建和控制器的View的创建


下一篇:STL源代码剖析——STL算法stl_algo.h