软件工程面向对象编程第二次课STL简介.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象的程序设计 第二讲 <续> STL 华中科技大学CAD中心 王彦伟 2.5 使用泛型算法 STL的泛型算法(75个,参考附录B) 常用的泛型算法 要使用泛型算法我们必须包含相关的头文件 #include algorithm 如果要使用以下四个算术算法 adjacent_difference() accumulate() inner_product()以及partial_sum() 则必须包含 #include numeric Find和Binary_search()二分法查找 二分法(效率高)查找注意 1)首先判断是否容器最大值(max_element())大于要查找的值,若是则false; 2)需对排序的容器进行。对于未排序的,进行: 子序列搜寻 copy Count、count_if 判断相等 fill 循环 产生数列元素 元素交换、替换 序列合并 排列 重复元素处理 局部操作 数学运算 求和:accumulate(); 内积:inner_product(); 集合运算:并、交、差 2.6 如何设计泛型算法 任务:第六讲P31 大于10 大于一个数 大于/小于一个数 使用函数对象(Function objects) #include functional 函数对象(具有operator()即函数调用重载操作的类的对象)代替函数指针,产生匿名对象,执行相关的操作,提高效率。 函数对象实例分析: 一元,二元 Function Object Adapters int list_count = 0; count_if( ilist.begin(), ilist.end(), bind2nd(lessint(),10), list_count ); 2.7 使用iterator inserters 为什么使用?防止指针溢出或空间浪费 使用插入适配器 inserter adapters, #includeiterator Back_inserter() 其实是函数,在循环中被调用。Back_inserter相当与调用push_back Inserter() Front_inserter() 2.8 使用iostream iterators 任务:读入字符流,排序输出 传统方法 改进方法 应用于文件 2.9 使用Auto_ptr auto_ptr 是C++标准库提供的类模板。它可以帮助程序员自动管理用new 表达式动态分配的单个对象; 不幸的是:对用new 表达式分配的数组管理没有类似的支持,我们不能用auto_ptr 存储数组,如果这样做了,结果将是未定义的; auto_ptr 对象被初始化为指向由new 表达式创建的动态分配对象当auto_ptr 对象的生命期结束时动态分配的对象被自动释放; 在使用anto_ptr 类模板之前必须包含下面的头文件 #include memory auto_ptr 对象的定义有下列三种形式 auto_ptr type_pointed_to identifier( ptr_allocated_by_new ); auto_ptr type_pointed_to identifier( auto_ptr_of_same_type ); auto_ptr type_pointed_to identifier; Auto_ptr的使用 auto_ptr int pi( new int( 1024 ) ); if ( *pi != 1024 ) {…} auto_ptr string pstr_auto( new string( Brontosaurus ) ); if ( pstr_auto-empty() ) {…} auto_ptr string pstr_auto2( pstr_auto ); auto_ptr int p_auto_int; 使用:if ( p_auto_int.get() != 0 *p_auto_int != 1024 ) 作业 Pp97 – 练习3-1 * * Find_first_of(); Find_end(); 过滤器函数 目标容器容量足够大!? //…调用filter()函数 *

文档评论(0)

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

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

1亿VIP精品文档

相关文档