《C++ STL-数据结构与算法实现》课件第1章 STL概述_第1页
《C++ STL-数据结构与算法实现》课件第1章 STL概述_第2页
《C++ STL-数据结构与算法实现》课件第1章 STL概述_第3页
《C++ STL-数据结构与算法实现》课件第1章 STL概述_第4页
《C++ STL-数据结构与算法实现》课件第1章 STL概述_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

参考书1/13参考书2/13课程内容第一章

STL

概述第二章

模板与重载第三章输入输出流第四章

string第五章

容器第六章通用算法与迭代器第七章

非可变序列算法第八章可变序列算法第九章

排序与查找算法第十章数值算法3/13第一章STL概述STL导言STL内容简介泛型编程与STLSTL程序的头文件命名空间namespace命名空间应用例4/13STL(StandardTemplateLibrary)

导言C++:应用越来越广泛STL:C++的一部分,编程时不需安装额外插件STL:众多技术人员经验的结晶,不用重复开发直接使用!提高开发效率和代码质量如:栈、队列、堆、树等数据结构及算法招聘:熟练掌握STLSTL导言5/13STL内容简介包括:容器、算法、迭代器(还包括其他的)容器数组、链表、队列、堆、栈、树、哈希表等数据结构直接定义并使用,功能强大,可用多种数据类型算法

增加、删除、查找、修改、排序等直接调用这些函数,实现相应功能迭代器指针的泛型,使算法操作容器中数据其他string类、I/O流类,函数对象,内存配置器等STL内容简介6/13泛型编程(GenericProgramming,GP)泛型数据类型参数化——把数据类型定义为变量,使用时才生成它的具体类型(实例化/特化),实现将算法与数据结构完全分离。目的:代码重用泛型编程

——用模板编程(函数模板/类模板)将常用数据结构(如栈/队列/链表/树)和算法(如排序/查找)写成模板,不论数据结构里面存放何种类型数据,不必再重新编写算法!STL——数据结构和算法的模板集合不必再编写这些数据结构和算法,代码质量很高泛型编程与STL7/13STL程序的头文件开发环境:VC++2012(VS2012)头文件位置:X:\VS2012\VC\include\STL程序的头文件序号功能头文件备注1迭代器#include<iterator>2I/O流#include<iostream>标准I/O#include<fstream>文件I/O#include<sstream>字符串I/O3字符串#include<string>string类4函数对象#include<functional>8/13STL程序的头文件STL程序的头文件序号功能头文件备注5容器#include<vector>向量容器#include<deque>双端队列#include<list>链表容器#include<query>队列/优先队列#include<stack>栈#include<set>集合/多重集#include<map>映射/多映射6算法#include<algorithm>7数值算法#include<numeric>9/13namespaceusingnamespacestd;命名对象变量、函数、类、结构体,…名称冲突开发大规模软件不同厂家(程序员)开发的类库/函数库,可能存在相同的函数名或类名(重名),使用哪一个呢?例:两个库都有fun函数,怎么确定用哪一个呢?解决方法using

namespace

指定名称空间std:C++标准库所有名称都在该命名空间中命名空间10/13#include<iostream>usingnamespacestd;//可后置于main前吗?namespace

myfun//命名空间{voidfun()//定义在myfun中 {cout<<"使用myfun中的fun()"<<endl;}

};namespace

yourfun//命名空间{voidfun()//定义在yourfun中 {cout<<"使用yourfun中的fun()"<<endl;}};命名空间应用例11/13//usingnamespacestd;//前面的可放在此处吗usingnamespacemyfun;//主要用myfunintmain(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论