没有合适的资源?快使用搜索试试~ 我知道了~
首页合肥工业大学 程序设计艺术与方法实验报告.doc
资源详情
资源评论
资源推荐

《程序设计艺术与方法》课程实验报告
实验名称 实验一 STL 的熟悉与使用
姓 名 系院专业 班 级 学 号
实验日期 指导教师 成 绩
一、实验目的和要求
1.掌握 C++中 STL 的容器类的使用;
2.掌握 C++中 STL 的算法类的使用.
二、实验预习内容
1.预习 ICPC 讲义,大致了解 STL 的相关内容。
2.了解 STL 中一些类 vector list 类的使用方法
3.了解泛型算法的使用
三、实验项目摘要
(1) 练习 vector 和 list 的使用。
定义一个空的 vector,元素类型为 int,生成 10 个随机数插入到 vector 中,用迭代
器遍历 vector 并输出其中的元素值。在 vector 头部插入一个随机数,用迭代器遍历 vector
并输出其中的元素值。用泛型算法 find 查找某个随机数,如果找到便输出,否则将此数
插入 vector 尾部。用泛型算法 sort 将 vector 排序,用迭代器遍历 vector 并输出其中的元
素值。删除 vector 尾部的元素,用迭代器遍历 vector 并输出其中的元素值。将 vector 清
空。
定义一个 list,并重复上述实验,并注意观察结果。
(2) 练习泛型算法的使用。
定义一个 vector,元素类型为 int,插入 10 个随机数,使用 sort 按升序排序,输出
每个元素的值,再按降叙排序,输出每个元素的值。练习用 find 查找元素。用 min 和
max 找出容器中的最小元素个最大元素,并输出。

四、实验结果与分析
(1)练习 vector 和 list 的使用。
vector:
源代码:
#include<iostream>
#include<vector> //动态数组
#include<ctime>
#include<algorithm>
using namespace std;
int main()
{
srand((unsigned)time(NULL));
vector<int> a;
vector<int>::iterator it;
for (int i = 0; i < 10; i++)
{
a.push_back(rand() % 100);
}
cout << "已随机插入数组 a 中十个数:";
//输出数组 a 中的元素
for (it = a.begin(); it != a.end(); it++)
{
cout << *it << " "; //迭代器输出
}
cout << endl << "在数组 a 的头部插入一个随机数:";
int num_insert = rand() % 100;
cout << num_insert << endl;
it = a.begin();
a.insert(it, num_insert); //插入该 100 以内的随机数;
cout << "插入后容器内的元素为:";
for (it=a.begin(); it != a.end(); it++)
{
cout << *it << " ";
}
int num_seek = rand() % 100;
cout << endl << "查找随机数:" << num_seek;
it = find(a.begin(), a.end(), num_seek);
if (it != a.end())
cout << endl << "已查找到" << num_seek;
else {

cout << endl << "未查找到" << num_seek << ",将其插入 vector 尾端";
a.push_back(num_seek);
}
sort(a.begin(), a.end());
cout << endl << "泛型算法 sort 排序:";
//输出排序后的数组 a 中的元素
for (it = a.begin(); it != a.end(); it++)
{
cout << *it << " ";
}
it = a.end() - 1;
cout << endl << "删除 vector 其尾端值" << *it;
a.pop_back();
cout << endl << "删除后其容器内的元素为:";
for (it = a.begin(); it != a.end(); it++)
{
cout << *it << " ";
}
a.clear();
cout << endl;
return 0;
}
截图:
List
源代码:
#include<iostream>

#include<list>//
带头节点的双向循环链表
#include<ctime>
#include<algorithm>
using namespace std;
int main()
{
srand((unsigned)time(NULL)); //
创建时间随机种子
list<int> a;
for (int i = 0; i < 10; i++)
a.push_back(rand() % 100);
cout << "已插入 10 个 100 以内的随机数:";
list<int>::iterator it;
for (it = a.begin(); it != a.end(); it++)
cout << *it << " ";
int num_insert = rand() % 100;
cout << endl << "在 list 容器的头部插入一个随机数:" << num_insert << endl;
a.push_front(num_insert);
cout << "插入随机数" << num_insert << ",list 容器中的元素现为:";
for (it = a.begin(); it != a.end(); it++)
cout << *it << " ";
int num_seek = rand() % 100;
cout << endl << "在 list 容器中查找随机数:" << num_seek << endl;
it = find(a.begin(), a.end(), num_seek);
if (it != a.end())
{
cout << "list 容器中存在" << num_seek << ",插入该随机值。" << endl;
a.push_back(num_seek);
}
else
cout << "list 容器中不存在" << num_seek << endl;
a.sort();
cout << "泛型算法 sort 函数排序后 list 容器中元素为:";
for (it = a.begin(); it != a.end(); it++)
cout << *it << " ";
cout << endl;
a.pop_back();
cout << "删除最后一位后,list 容器中元素为:";
for (it = a.begin(); it != a.end(); it++)
cout << *it << " ";
cout << endl;
a.clear();
return 0;
}

截图:
(1) 练习泛型算法的使用。
源代码:
#include<iostream>
#include<vector>
#include<algorithm>
#include<ctime>
using namespace std;
vector<int> a;
int main()
{
vector<int>::iterator it;
srand((unsigned)time(NULL)); //创建时间随机种子
for (int i = 0; i < 10; i++)
{
a.push_back(rand() % 100);
}
cout << "已随机插入 10 个数为:";
for (it = a.begin(); it != a.end(); it++)
{
cout << *it << " ";
}
sort(a.begin(), a.end());//升序排序;
cout << endl << "使用 sort 升序排序:";
剩余29页未读,继续阅读










安全验证
文档复制为VIP权益,开通VIP直接复制

评论0