域名在哪个网站卖好,投标文件网站开发技术部分,好网站建设公司选择哪家好,十堰网络销售目录 #x1f914;vector模板和deque的简单介绍:
#x1f914;vector和deque的主要不同之处#xff1a;
#x1f914;今天我们用vector模板和deque模板实现以下简单的功能#xff1a;
代码实现#xff1a;
#x1f914;讲解#xff1a; #x1f914;vector模板和d…目录 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.获取平均分
代码实现
#includeiostream
#includevector
#includedeque
#includestring
#includealgorithm
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()
{//完成了创建选手vectorperson persons;for (int i 0; i 5; i){string name;int age;cout 请输入第i1位参赛选手的姓名;cin name;cout 请输入第 i 1 位参赛选手的年龄;cin age;person* p new person (name,age);//开始录入分数dequeintscroes;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 (dequeint::iterator t1 scroes.begin(); t1 ! scroes.end(); t1){sums sums *t1;}int arrage;arrage sums / 3;p-score arrage;persons.push_back(*p); }for (vectorperson::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向量输出所有选手的姓名、年龄、成绩。