目录
🤔vector模板和deque的简单介绍:
🤔vector和deque的主要不同之处:
🤔今天我们用vector模板和deque模板实现以下简单的功能:
代码实现:
🤔讲解:
🤔vector模板和deque的简单介绍:
vector和deque都是C++ STL(标准模板库)中的容器模板,用于存储和管理数据。它们都提供了可动态调整大小的数组,允许在任何位置插入和删除元素。
🤔vector和deque的主要不同之处:
内部数据结构的实现方式不同:vector使用连续的内存块来存储元素,所以随机访问元素的速度很快,但在插入和删除元素时需要移动后续元素的成本可能比较高。deque则采用了一种双向队列的数据结构,可以在两端快速插入和删除元素,但在随机访问元素时的效率较低。
关于这两个模板的详细介绍可以看以下两篇文章:
C++ vector类成员函数介绍_我是一盘牛肉的博客-CSDN博客
C++ deque类成员函数介绍_我是一盘牛肉的博客-CSDN博客
🤔今天我们用vector模板和deque模板实现以下简单的功能:
📖1.创建五名选手,放到vector中
📖2.遍历vector容器,取出来每一个选手,执行for循环,把10个评分存储到deque容器中
📖3.sort排序后去除最高分和最低分
📖4.deque容器遍历,累加总分
📖5.获取平均分:文章来源:https://www.toymoban.com/news/detail-466562.html
代码实现:
#include<iostream>
#include<vector>
#include<deque>
#include<string>
#include<algorithm>
using namespace std;
class person
{
public:
person(string name, int age)
{
m_name = name;
m_age = age;
}
string m_name;
int m_age;
int score;
};
void test01()
{
//完成了创建选手
vector<person> persons;
for (int i = 0; i < 5; i++)
{
string name;
int age;
cout << "请输入第"<<i+1<<"位参赛选手的姓名:";
cin >> name;
cout << "请输入第" << i + 1 << "位参赛选手的年龄:";
cin >> age;
person* p = new person (name,age);
//开始录入分数
deque<int>scroes;
for (int i = 0; i < 10; i++)
{
int nums = 0;
cout << "请输入第" << i + 1 << "位裁判的分数:";
cin >> nums;
scroes.push_front(nums);
}
//排序后去除最高分和最低分
sort(scroes.begin(), scroes.end());
scroes.pop_front();
scroes.pop_back();
//计算平均值
int sums = 0;
for (deque<int>::iterator t1 = scroes.begin(); t1 != scroes.end(); t1++)
{
sums = sums + *t1;
}
int arrage;
arrage = sums / 3;
p->score = arrage;
persons.push_back(*p);
}
for (vector<person>::iterator t = persons.begin(); t != persons.end(); t++)
{
cout << "选手姓名" << t->m_name << "选手年龄" << t->m_age << "选手分数" << t->score << endl;
}
}
int main()
{
test01();
}
🤔讲解:
这段代码使用C++创建了一个选手评分系统。首先,利用person
类创建了存储选手信息的vector
向量persons
,并使用用户输入的信息初始化了person
对象并将其存储到向量中。接下来,使用deque
双端队列记录了每位参赛选手10次裁判打分,并且去掉最高分和最低分,计算得出该选手的平均分数,将平均分数保存到对应的person
对象的score
成员变量中。最后,使用迭代器遍历persons
向量,输出所有选手的姓名、年龄、成绩。文章来源地址https://www.toymoban.com/news/detail-466562.html
到了这里,关于C++ vector模板和deque的简单应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!