C程序的设计——对象分册[第7章节]-ppt.pptVIP

  • 5
  • 0
  • 约1.09万字
  • 约 36页
  • 2017-03-27 发布于四川
  • 举报

C程序的设计——对象分册[第7章节]-ppt.ppt

C程序的设计——对象分册[第7章节]-ppt

* * 7.5算法(Algorithm) 7.5.1算法和函数对象 广义上讲,算法是一个按照一组定义明确的步骤来解决某个问题的处理过程。 所有算法的前两个变量都是一对迭代器,通常称为首(first)和末(last)迭代器,用来表明算法对容器进行操作的元素范围。元素范围是一个区间——[fist, last),它表示范围从first(包含first指向的元素)开始,到last结束(不包含last指向的元素) 函数对象是函数的一般形式。实际上函数对象是一个重载了operator()的类。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. * * 7.5.2 算法分类介绍 STL提供了70个算法,按照不同的分类方法可以将这些算法分成不同的类别: (1)按照算法所做工作的不同,可以将算法分成8个种类:查找、排序、数值计算、比较、集合、容器管理、统计和堆操作。 (2)按照算法对容器的影响,可以将算法分成4个种类:非修正算法、修正算法、排序算法和数值计算算法。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. * * 7.5.2 算法分类介绍 1.非修正算法 非修正算法的操作不对变容器中的元素进行任何修改,这类算法包括adjacent_find()、find()、find_end()、find_first()、count()、mismatch()、equal()、for_each()和search()等,这些算法都包含在头文件algorithm中。 【例7.8】非修正算法例题。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. * * 7.5.2 算法分类介绍 2.修正算法 在实际应用中,经常需要对容器中的元素进行修改和写操作,这类能够对容器中元素进行修改的算法称为修正算法。修正算法包括copy()、copy_backward()、fill() 、generate()、partition()、random_shuffle()、remove()、replace()、rotate()、reverse()、swap()、swap_ranges()、transform()和unique()等 【例7.9】修正算法例题。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. * * 7.5.2 算法分类介绍 3.排序算法 对于一个序列来说,排序是最经常进行的操作,也是最重要的操作。由于排序需要移动元素,因此排序算法用到的迭代器都是随机存取迭代器。排序算法包括sort()、stable_sort()、partial_sort()、partial_sort_copy()、nth_element()、binary_search()、lower_bound()、upper_bound()、equal_range()、merge()、includes()、push_heap()、pop_heap()、make_heap()、sort_heap()、set_union()、set_intersection()、set_difference()、set_symmetric_difference()、min()、min_element()、max()、max_element()、lexicographica;_compare()、next_permutation()和prev_permutation()等。 【例7.10】排序算法例题 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. C/C++程序设计教程 郑秋生 主编 Evaluation only. Created

文档评论(0)

1亿VIP精品文档

相关文档