龙空技术网

【C++编程语言】vector容器和deque容器具体使用案例

烦人的星辰 28

前言:

眼前姐妹们对“vector的累加算法”可能比较关切,你们都需要剖析一些“vector的累加算法”的相关内容。那么小编同时在网络上网罗了一些有关“vector的累加算法””的相关资讯,希望小伙伴们能喜欢,朋友们快快来了解一下吧!

#挑战30天在头条写日记#

1.案例描述

有5名选手,选手ABCDE,10个评委分别对每一名选手打分,去除评委的最高和最低分取平均分

2.实现步骤:创建五名选手,放到vector容器中遍历vector容器,取出来每一个选手,执行for循环,可以把10评分存到deque容器中sort算法对deque容器中分时排序,去除最高和最低deque容器遍历一遍,累计总分获取平均分

#include<iostream>#include <vector>#include <deque>#include<algorithm>using namespace std;class Person {public:    string m_Name;//姓名    int m_Score;//平均分    Person(string name, int score) {        this->m_Name = name;        this->m_Score = score;    }};//创建五名选手void createPerson(vector<Person>&v) {    string nameSeed = "ABCDE";    for (int i = 0; i < 5; i++) {        string name = "选手";        name += nameSeed[i];        int score = 0;        Person p(name,score);                //将创建的person对象  放入到容器中        v.push_back(p);    }}//给选手打分void setScore(vector<Person>& v) {    for (vector<Person>::iterator it = v.begin(); it != v.end(); it++) {                //将评委的分数,放入到deque容器中        deque<int>d;        for (int i = 0; i < 10; i++) {            int score = rand() % 41 + 60;//取值为60-100            d.push_back(score);        }        cout << "选手:" << it->m_Name << " 打分: " << endl;        //测试打分        for (deque<int>::iterator dit= d.begin(); dit != d.end(); dit++) {            cout << *dit << " ";         }        cout << endl;        //容器排序        sort(d.begin(), d.end());        //去除最高分和最低分        d.pop_back();        d.pop_front();        //取平均分        int sum = 0;        for (deque<int>::iterator dit = d.begin(); dit != d.end(); dit++) {            sum += (*dit);//累加每个评委的分数        }        int avg = sum / d.size();        //将平均分赋值给选手身上        (*it).m_Score = avg;    }}//展示最后的分数void showScore(vector<Person>& v) {    for (vector<Person>::iterator it = v.begin(); it != v.end(); it++) {        cout << "姓名: "<< (*it).m_Name << " 分数:"<< (*it).m_Score << endl;    }}int main() {    //随机数种子    srand((unsigned int)time(NULL));    //1.创建5名选手    vector<Person> v;//存放选手容器    createPerson(v);    //测试    //for (vector<Person>::iterator it = v.begin(); it != v.end(); it++) {        //cout << "姓名: "<< (*it).m_Name << " 分数:"<< (*it).m_Score << endl;    //}        //2.给5名选手打分     setScore(v);    //3.显示最后得分     showScore(v);    system("pause");    return 0;}

标签: #vector的累加算法 #protocexe用法