第14章标准库中的算法讲解.ppt

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第14章标准库中的算法讲解

C++程序设计实例教程 第14章 标准库中的算法 C++语言标准库中,使用函数模板实现了一些算法。这些算法用于对容器中的元素进行增、删、改、查等操作。 本章介绍STL中68个算法的使用。 知识体系 本章要点: 14.1 算法概述 14.2 accumulate、inner_product、partial_sum和adjacent_difference 14.3 copy和copy_backward 14.4 count、count_if、fill、fill_n、generate和generate_n 14.5 sort、stable_sort、partition、stable_partition、partial_sort、partial_sort_copy、nth_element和random_shaffle 14.6 adjacent_find、find、find_if、find_first_of、find_end 、search、search_n 、equal、mismatch和lexicographical_campare 知识体系 本章要点: 14.7 binary_search、lower_bound、upper_bound和equal_range 14.8 merge、inplace_merge、unique和unique_copy 14.9 includes、set_intersection、set_union、set_difference和set_symmertric_difference 14.10 remove、remove_if、remove_copy、remove_copy_if、replace、replace_if、replace_copy和replace_copy_if 14.11 reverse、reverse_copy、rotate、rotate_copy、swap、iter_swap和swap_ranges 知识体系 本章要点: 14.12 next_permutation和prev_permutation 14.13 min_element和max_element 14.14 push_heap、pop_heap、make_heap和sort_heap 14.15 for_each和transform 14.1 算法概述 在STL中,针对不同容器的相同操作而设计的一些函数模板,被称为算法。STL中的算法是通过迭代器间接访问容器元素而实现的,一个算法可以作用于多个不同的容器,甚至可以用于普通的数组,因此,这些算法是“通用”的。 值得注意的是,本章介绍的算法可能会与上一章容器类模板中的成员函数同名,实现的操作也是相似的。 另外,STL中的算法通过迭代器间接访问容器元素时,经常会使用两个迭代器确定容器中的一段连续元素,一个迭代器指向这段连续元素中的首个元素,另一个迭代器指向这段连续元素中的最后一个元素的下一个位置,而不是指向最后一个元素。 14.2 accumulate、inner_product、partial_sum和adjacent_difference 1 //14.1 accumulate、inner_product、partial_sum和adjacent_difference 14 void print(int* arr, int len,const char* str) 15 { 16 coutstr; 17 for(int i=0;ilen;++i) 18 coutarr[i] ; 19 coutendl; 20 } 21 int f1(int a,int b) 22 { 23 if(b%2) 24 a+=b; 25 return a; 26 } 27 int f2(int a,int b) 28 { 29 return a*b; 30 } 32 int main() 33 { int a1[]={1,2,3,4,5}; 35 print(a1,5,a1:); 36 coutaccumulate(a1,a1+5,100)=accumulate(a1,a1+5,100)endl; 37 coutaccumulate(a1,a1+5,0,f1)=accumulate(a1,a1+5,0,f1)endl; 38 cout-----------------------------------endl; 40 coutinner_product(a1,a1+5,a1,0)=inner_product(a1,a1+5,a1,0)endl;

文档评论(0)

4477704 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档