C++ STL——数据结构与算法实现全套课件完整版电子教案(可修改版).pptx

C++ STL——数据结构与算法实现全套课件完整版电子教案(可修改版).pptx

  1. 1、本文档共332页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
;课程内容;第一章 STL 概述;STL (Standard Template Library) 导言 C++:应用越来越广泛 STL:C++ 的一部分,编程时不需安装额外插件 STL:众多技术人员经验的结晶,不用重复开发 直接使用!提高开发效率和代码质量 如:栈、队列、堆、树等数据结构及算法 招聘:熟练掌握 STL ;STL 内容简介 包括:容器、算法、迭代器(还包括其他的) 容器 数组、链表、队列、堆、栈、树、哈希表等数据结构 直接定义并使用,功能强大,可用多种数据类型 算法 增加、删除、查找、修改、排序等 直接调用这些函数,实现相应功能 迭代器 指针的泛型,使算法操作容器中数据 其他 string类、I/O流类,函数对象,内存配置器等;泛型编程(Generic Programming,GP) 泛型 数据类型参数化——把数据类型定义为变量,使用时才生成它的具体类型(实例化/特化),实现将算法与数据结构完全分离。目的:代码重用 泛型编程 —— 用模板编程(函数模板/类模板) 将常用数据结构(如栈/队列/链表/树)和算法(如排序/查找)写成模板,不论数据结构里面存放何种类型数据,不必再重新编写算法! STL —— 数据结构和算法的模板集合 不必再编写这些数据结构和算法,代码质量很高;STL 程序的头文件 开发环境: VC++ 2012 (VS2012) 头文件位置:X:\VS2012\VC\include\;STL 程序的头文件;namespace using namespace std ; 命名对象 变量、函数、类、结构体,… 名称冲突 开发大规模软件 不同厂家(程序员)开发的类库/函数库,可能存在 相同的函数名或类名(重名),使用哪一个呢? 例:两个库都有 fun 函数,怎么确定用哪一个呢? 解决方法 using namespace 指定名称空间 std : C++标准库所有名称都在该命名空间中;#include <iostream> using namespace std ; // 可后置于 main 前吗? namespace myfun // 命名空间 { void fun() // 定义在 myfun 中 { cout<<"使用myfun中的fun()"<<endl; } }; namespace yourfun // 命名空间 { void fun() // 定义在 yourfun 中 { cout<< "使用yourfun中的fun()"<<endl ; } };;// using namespace std ; // 前面的可放在此处吗 using namespace myfun; // 主要??? myfun int main( ) { fun(); // myfun::fun(); yourfun::fun(); // 临时用 yourfun return 0; } ; ;第二章 模板与重载;引入模板——代码重用 C++是强类型语言,函数或类的功能类似,只要数据类型不同,就要编写多份代码,增加了编程量和源程序长度。 例:求 a, b 最大值,需编写四个函数(四份代码) int Max(int a, int b) { return (a>b)? a:b; } float Max(float a,float b) { return (a>b)? a:b; } double Max(double a,double b) { return (a>b)? a:b; } char Max(char a,char b) { return (a>b)? a:b; };函数模板 编写一个函数模子,用这个模子制造出若干功能相同,参数类型和返回类型不同的函数——模板函数 函数模板的声明 template <class T> // T: 类型是参数 T Max(T a,T b) { return (a>b)? a:b; } //----------- 如此,就做好了一个函数模板------------ 在调用Max函数时,根据实参类型确定T: int x =2, y=5 ; cout<< Max( x, y ); // T→ int;函数模板简例;函数模板中可用多种类型参数 —— T1, T2 每种类型参数前加 class 问: a,b 可否实例化为相同类型?;函数重载 参数类型不同 参数个数不同 问: 左边两个重载的函数模板的类型参数

您可能关注的文档

文档评论(0)

你找对了 + 关注
实名认证
内容提供者

正版课件均可编辑 注意:其它人很多盗版P P T都是图片形式,买到请直接投诉退款!

1亿VIP精品文档

相关文档