0
点赞
收藏
分享

微信扫一扫

ICPC实验一、STL 的熟悉与使用


(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 找出容器中的小元素个大元素,并输出。

源代码:

①vector

// ICPC实验一 STL 的熟悉与使用.cpp : Defines the entry point for the console application.
//
//
// Name:实验一 STL 的熟悉与使用、vector部分;
// Date:20190529
// Aurthor:leechoy
//
//(1) 练习 vector的使用

#include "stdafx.h"

#include<iostream>

#include<vector> //动态数组

#include<ctime>

#include<algorithm> //泛型

#define random()(rand()%x) //定义随机函数

using namespace std;

int main(int argc, char* argv[])
{
srand((unsigned)time(NULL));

vector<int> a; //创建动态数组容器vector a

vector<int>::iterator it;

for(int i=0;i<10;i++)
{

a.push_back(rand()%100);
//随机插入10个100以内的数值;

}

cout<<"随机插入vector动态数组中十个数:";

for( it = a.begin();it!=a.end();it++)
{

cout<<*it<<" "; //迭代器输出

}

cout<<endl<<"在vector的头部插入一个随机数:";

int instertElement = rand()%100; //创建随机数

cout<<instertElement<<endl;

it = a.begin();

a.insert(it,instertElement); //插入该100以内的随机数;

cout<<"插入后容器内的元素为:";

for(it;it!=a.end();it++)
{

cout<<*it<<" "; //迭代器输出

}

int findElement = rand()%100;//再次生成一个随机数;

cout<<endl<<"查找随机数:"<<findElement;

if(find(a.begin(),a.end(),findElement))

cout<<endl<<"已经查找到"<<findElement;

else{

cout<<endl<<"没有查找到"<<findElement<<"于vector尾端插入它!";

a.push_back(findElement);
}

sort(a.begin(),a.end());

cout<<endl<<"sort泛型函数排序后的vector容器的序列为:";

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

//
// Name:实验一 STL 的熟悉与使用、list部分;
// Date:20190529
// Author:leechoy
//
//(1) 练习 list的使用
#include "stdafx.h"

#include<iostream>

#include<list>

#include<ctime>

#include<algorithm>

#define random()(rand()%x) //定义随机函数

using namespace std;

int main(int argc, char* argv[])
{ int randomElement;

srand((unsigned)time(NULL)); //创建时间随机种子

list<int> a; //构建一个单链表容器 a

cout<<"于list容器中插入10个100以内的随机数:";

for(int i=0;i<10;i++)

a.push_back(rand()%100); //插入10个100内的随机值

list<int>::iterator it; //创建一个list容器的迭代器 it

for(it = a.begin() ; it!=a.end();it++)

cout<<*it<<" "; //打印list容器中的随机数


randomElement = rand()%100; //生成随机数赋值给randomElement

cout<<endl<<"于list容器的头部插入一个随机数:"<<randomElement<<endl;

a.push_front(randomElement); //插入随机数randomElement

cout<<"插入随机值"<<randomElement<<"后该list容器中的元素为:";

for(it = a.begin() ; it!=a.end();it++)
cout<<*it<<" "; //打印list容器中的插入随机数后的元素

randomElement = rand()%100; //生成随机数赋值给randomElement

cout<<endl<<"于list容器中查找随机值:"<<randomElement<<endl;

it = find(a.begin(),a.end(),randomElement); //查找list容器中是否存在该随机值

if(it == a.end())
cout<<"list容器中不存在"<<randomElement<<endl;
else
{
cout<<"list容器中存在"<<randomElement<<",插入该随机值。"<<endl;
a.push_back(randomElement);
}

a.sort();//调用泛型函数sort排序

cout<<"利用泛型sort函数排序后该list容器中的元素为:";

for(it = a.begin() ; it!=a.end();it++)
cout<<*it<<" "; //打印list容器中的元素

cout<<endl;

a.pop_back();

cout<<"清除最后一位后list中元素为:";

for(it = a.begin() ; it!=a.end();it++)
cout<<*it<<" "; //打印list容器中的元素

cout<<endl;

a.clear(); //清空

return 0;
}

####③泛型练习

//
// Name:实验一 STL 的熟悉与使用、泛型函数部分;
// Date:20190529
// Author:leechoy
//
//2、泛型函数的使用

#include<iostream.h>

#include<vector>

#include<algorithm>

#include<ctime>

using namespace std;

#define random() (rand()%x);

vector<int> a;

bool cmp_down(int a ,int b)//升序函数
{

return a>b;
}

int main()

{ vector<int>::iterator p;

srand((unsigned)time(NULL)); //创建时间随机种子

for(int i =0 ;i<10;i++)
{

a.push_back(rand()%100);

}

cout<<"随机产生10个数:";

for(p=a.begin();p !=a.end();p++)
{

cout<<*p<<" ";

}

sort(a.begin(),a.end());//升序排序;

cout<<endl<<"利用sort升序排序后:";

for(p=a.begin();p !=a.end();p++)
{
cout<<*p<<" ";
}

sort(a.begin(),a.end(),cmp_down);

cout<<endl<<"利用sort降序排列后list中的内容为:";

for(p=a.begin();p !=a.end();p++)
{
cout<<*p<<" ";
}
///利用find()查找数据

int randomInterger = rand()%100;
//判断是否存在随机值
if(find(a.begin(),a.end(),randomInterger)) randomInteger
cout<<endl<<"找到随机元素"<<randomInterger;
else
cout<<endl<<"容器中不存在该随机值"<<randomInterger<<endl;

cout<<endl<<"容器中第四个和第五个中最大的为(利用max()):"<<_cpp_max(a[3],a[4]);
//vc6.0中max和min被修改成了_cpp_max和_cpp_min

cout<<endl<<"容器中第六个和七个中较小的为(利用min()):"<<_cpp_max(a[5],a[6]);

cout<<endl<<"容器中最大值为(利用max_element()):"<<*max_element(a.begin(),a.end());
//max_element()和min_element()可以对指定范围进行求取最大值

cout<<endl<<"容器中最小值为(利用min_element());"<<*min_element(a.begin(),a.end()); //

cout<<endl;

return 0;
}


举报

相关推荐

0 条评论