程序设计》课程实验报告实验名称STL 的熟悉与使用姓名系院专业计算机与信息学院班级计算机科学与技术12—2 班学号实验日期指导教师成绩一、实验目的和要求1
(1)掌握 C++中 STL 的容器类使用
(2)掌握 C++中 STL 的算法类的使用
二、实验预习内容Vector,list 可当作列表使用的数据结构,它们都是动态增长的
vector 表示一段连续的内存区域每个兀素被顺序储存在这段内存中
对 vector 的随即访问效率很高
但是在任意位置而不是在 vector 末尾插入兀素则效率很低,因为它需要把待插入兀素的右边的母个兀素都拷贝一遍
类似的删除任一个而不是 vector 的取后一个兀素效率低
2list 表示非连续的内存区域并通过一对指向首尾元素的指针双向进行遍历在 list 的任意位置插入和删除兀素的效率都很高,指针必须被赋值但不需要用拷贝兀素来实现移动,另一方面它对随机访问的支持并不好访问一个兀素需要遍历中间的兀素,另外每个兀素还有俩不能给个指针的额外空间开销
3 泛型算法让编写一般化并可重复使用的算法,其效率与指针对某特定数据类型而设计的算法相冋
泛型即是指具有在多种数据类型上皆可操作的含义,与模板有些相似
STL 巨大而且可以扩充,它包含很多计算机基本算法和数据结构,而且将算法与数据结构完全分离,其中算法是泛型的,不与任何特定数据结构或对象类型系在一起
三、实验项目摘要1
练习 vector 和 list 的使用
定义一个空的 vector,元素类型为 int,生成 10 个随机数插入到 vector 中,用迭代器遍历 vector 并输出其中的元素值
在 vector 头部插入一个随机数,用迭代器遍历 vector 并输出其中的元素值
用泛型算法 find 查找某个随机数,如果找到便输出,否则将此数插入 vector 尾部
用泛型算法 sort 将