码迷,mamicode.com
首页 > 其他好文 > 详细

泛型编程与stl

时间:2014-11-06 19:33:01      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:des   io   ar   os   使用   for   div   on   art   

1、理解concept与model的关系
iterator concepts: input iterator 、output iterator、forward iterator、bidirectional
iterator及random access iterator

2、iterator Traits与Associated Types
value_type、difference_type
、reference_type和pointer_type
iterator_category

3、function object concepts:
Generator、Unary Function和Binary Function

4、Container concepts:
Container(input iterator)-->forward Container(forward iterator)-->Reversible Container
(bidirectional iterator)-->Random Access Container(Random access iterator)

Sequences Concepts: 是forward container的强化
stl中包含三种:vector、list和deque
back insertion sequence和front insert sequence
注意安插语义和覆盖语义

associative containers concepts: 是forward container的强化
simple 和 pair
unique 和 multiple
hashed 和 sorted

5、allocators:

6、basic concepts:
assignable:
default constructible:
equality comparable:
lessthan comparable:
strict weakly comparable:如果两元素具有任何一个都不小于另一个的性质,那么将之视为具备某种程度
之等价关系是合理的。

7、iterators:
trivial iterator:
input iterator:
output iterator:不必具有任何特定的“value type”

8、function objects
function objects和adaptable function objects区别:后者是能够被转换为或被用来操作其他function
objects的一种function objects。其嵌套定义了返回类型和参数类型(具体要看adaptable类型)。

predicates:与对应的function object concept完全相同的相关类型,但返回类型必须可以转换为bool

adaptable predicate:

strict weak ordering:
与binary predicate相同的associated types,但有一个额外限制:第一第二参数必须相同。

Random Number Generator:

Hash Function:

10、constructor 和destroy
uninitialized_copy、uninitialized_fill和uninitialized_fill_n
get_temporary_buffer、return_temporary_buffer

11、线性查找:
find、find_if、adjacent_find
find_first_of

12、子序列匹配
search、find_end、search_n

13、计算元素个数
count、count_if

14、for_each

15、比较两个Ranges
equal、mismatch、lexicographical_compare(字典排序法)

16、最大值和最小值
min和max min_element和max_element

17、拷贝某个区间
copy:只能为元素赋新的值而不是产生新的元素,copy不能直接用来将元素安插于空的container之中。
copy_backward:

18、互换元素
swap、iter_swap(很少使用)、swap_ranges

19、transform

20、替换元素
replace、replace_if、replace_copy、replace_copy_if

21、填充整个区间
fill、fill_n、generate、generate_n

22、移除元素:
remove(不会改变container的大小,只是返回一个新的new_last)、remove_if、remove_copy、
remove_copy_if、unique(只对相邻元素进行测试)、unique_copy

23、排列算法
reverse、reverse_copy、rotate、rotate_copy、next_permutation、prev_permutation

24、分割
partition、stable_partition

25、随机重排与抽样
random_shuffle、random_sample、random_sample_n

26、一般化之数值算法
accumulate、inner_product、partial_sum、adjacent_difference

27、排序和查找
sort、stable_sort、partial_sort、partial_sort_copy、nth_element
is_sorted

28、sorted ranges上的操作行为
二分查找法
binary_search、lower_bound、upper_bound、equal_range

合并两个sorted ranges
merge、implace_merge

在sorted ranges身上执行集合相关操作
includes、set_union、set_intersection、set_difference、set_symmetric_difference

29、堆的相关操作
make_heap、push_heap、pop_heap、sort_heap、is_heap

30、insert iterators
front_insert_iterator对应辅助函数 front_inserter
back_insert_iterator对应辅助函数 back_inserter
insert_iterator对应辅助函数inserter

31、stream iterators
istream_iterator
ostream_iterator
istreambuf_iterator
ostreambuf_iterator

32、reverse_iterator

33、raw_storage_iterator

34、Function object Base Classes
unary_function、binary_function

35、算术运算
plus、minus、multiplies、divides、modulus、negate

36、大小比较
equal_to、not_equal_to、less、greater、less_equal、greater_equal

37、逻辑运算

38、证同与投射
select1st、select2nd

39、特殊的function objects
hash、subtractive_rng

40、member function adapters(面向对象编程与泛型编程之间的桥梁)
mem_fun和mem_fun_ref

41、其他的adapters
binder1st、binder2nd、pointer_to_unary_dunction辅助函数ptr_fun、
pointer_to_binary_function辅助函数ptr_fun
unary_negate==》not1
binary_negate==>not2
unary_compose==>compose1 函数合成
binary_compose==>compose2

42、container classes
sequences:vector、deque、list
associative containers:set、map

43、container adapeters
stack、queue、priority_queue

泛型编程与stl

标签:des   io   ar   os   使用   for   div   on   art   

原文地址:http://www.cnblogs.com/7cms-3xll/p/4079517.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!