实验一 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 找出容器中的最小元素个最大元素,并输出。文章来源:https://www.toymoban.com/news/detail-526807.html
#include<list>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;
int main(void)
{
list<int> a;
list<int>::iterator it;
int r;
for(int i=0;i<10;i++)
{
r = rand();
a.push_back(r);
}
cout<<"输出元素:"<<endl;
for(it=a.begin();it!=a.end();it++)
{
cout<<(*it)<<' ';
}
r = rand();
a.insert(a.begin(),r);
cout<<endl<<"在头部插入一个随机数后输出元素:"<<endl;
for(it=a.begin();it!=a.end();it++)
{
cout<<(*it)<<' ';
}
r = rand();
it = find(a.begin(),a.end(),r);
if(it!=a.end())
{
cout<<endl<<"已经查找到"<<r<<endl;
}
else
{
a.push_back(r);
}
a.sort();
cout<<endl<<"排序后输出元素:"<<endl;
for(it=a.begin();it!=a.end();it++)
{
cout<<(*it)<<' ';
}
a.pop_back();
cout<<endl<<"删除尾部元素后输出元素:"<<endl;
for(it=a.begin();it!=a.end();it++)
{
cout<<(*it)<<' ';
}
cout<<endl;
a.clear();
return 0;
}
#include<vector>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;
int main(void)
{
vector<int> a;//定义一个空的 vector,元素类型为 int
vector<int>::iterator it;
int r;
for(int i=0;i<10;i++)//生成 10 个随机数插入到 vector 中
{
r = rand();
a.push_back(r);
}
cout<<"输出元素:"<<endl;
for(it=a.begin();it!=a.end();it++)
{
cout<<(*it)<<' ';//用迭代器遍历 vector 并输出其中的元素值
}
r = rand();
a.insert(a.begin(),r);//在 vector 头部插入一个随机数
cout<<endl<<"在头部插入一个随机数后输出元素:"<<endl;
for(it=a.begin();it!=a.end();it++)
{
cout<<(*it)<<' ';//用迭代器遍历 vector 并输出其中的元素值
}
r = rand();//用泛型算法 find 查找某个随机数
it = find(a.begin(),a.end(),r);
if(it!=a.begin()+a.size())//如果找到便输出
{
cout<<endl<<"已经查找到"<<r<<endl;
}
else//否则将此数插入 vector 尾部
{
a.push_back(r);
}
sort(a.begin(),a.end());//用泛型算法 sort 将 vector 排序
cout<<endl<<"排序后输出元素:"<<endl;
for(it=a.begin();it!=a.end();it++)
{
cout<<(*it)<<' ';//用迭代器遍历 vector 并输出其中的元素值
}
a.pop_back();//删除 vector 尾部的元素
cout<<endl<<"删除尾部元素后输出元素:"<<endl;
for(it=a.begin();it!=a.end();it++)
{
cout<<(*it)<<' ';//用迭代器遍历 vector 并输出其中的元素值
}
cout<<endl;
a.clear();//将 vector 清空
return 0;
}
#include<vector>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;
int main(void)
{
vector<int> a;
vector<int>::iterator it;
int r;
for(int i=0;i<10;i++)
{
r = rand();
a.push_back(r);
}
sort(a.begin(),a.end());
cout<<"升序输出元素:"<<endl;
for(it=a.begin();it!=a.end();it++)
{
cout<<(*it)<<' ';
}
sort(a.rbegin(),a.rend());
cout<<endl<<"降序输出元素:"<<endl;
for(it=a.begin();it!=a.end();it++)
{
cout<<(*it)<<' ';
}
cout<<endl<<"最大元素:"<<*max_element(a.begin(),a.end())<<endl;
cout<<endl<<"最小元素:"<<*min_element(a.begin(),a.end())<<endl;
}
实验二 搜索算法的实现
一、实验目的和要求
1.掌握宽度优先搜索算法。
2.掌握深度优先搜索算法。
二、实验预习内容
1.预习ICPC讲义中的搜索的内容
2. 了解什么是深度优先搜索和广度优先搜索。
三、实验项目摘要
1、 将书上的走迷宫代码上机运行并检验结果,并注意体会搜索的思想。
2、八皇后问题:在一个国际象棋棋盘上放八个皇后,使得任何两个皇后之间不相互攻击,求出所有的布棋方法。上机运行并检验结果。
3、骑士游历问题:在国际棋盘上使一个骑士遍历所有的格子一遍且仅一遍,对于任意给定的顶点,输出一条符合上述要求的路径。
4.倒水问题:给定2 个没有刻度容器,对于任意给定的容积,求出如何只用两个瓶装出L 升的水,如果可以,输出步骤,如果不可以,请输出No Solution。文章来源地址https://www.toymoban.com/news/detail-526807.html
#include<iostream>
#include<vector>
using namespace std;
int maze[4][6] = {
{
1, 1, 0, 0, 0, 0},
{
0, 1, 1, 1, 0, 0},
{
1, 1, 0, 1, 0, 0},
{
0, 0, 0, 1, 0, 0}};
vector<pair<int, int> > path;
int dir[4][2] = {
{
0, 1}, {
1, 0}, {
0, -1}, {
-1, 0}};
void printvector(vector<pair<int, int> > path)
{
vector<pair<int , int > >::iterator pit;
for(pit=path.begin();pit != path.end();pit++)
{
cout<<pit->first<<","<<pit->second<<" -> ";
}
cout<<"3,3"<<endl;
}
void search(vector<pair<int, int> > tpath, int x, int y)
{
if(x < 0 || y
到了这里,关于合工大 宣区 程序设计艺术与方法 实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!