vector实例题

简介: vector实例题

vector实例题


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


分三个步骤:

1.创建五个选手(vector容器)

2.给五个选手打分(deque容器)

3.显示最后得分


代码:


#include <iostream>
using namespace std;
#include <vector>
#include <string>
#include <deque>
#include <algorithm>
#include <ctime>
//设计一个学生类
class Person
{
public:
  //构造函数
  Person(string name,int aver)
  {
  this->m_name = name;
  this->m_aver = aver;
  }
  string m_name;
  int m_aver;
};
//创建五个选手
void CreatePerson(vector<Person>&v)
{
  string PersonN = "ABCDE"; 
  for(int i=0;i<5;i++)
  {
  string name = "选手";
  name += PersonN[i];  //分别重新命名
  int age = 0;
  Person p(name,age);  //析构函数赋值
  v.push_back(p);
  }
}
void GradePerson(vector<Person>&v)
{
  for(vector<Person>::iterator it = v.begin();it!=v.end();it++)
  {
  deque<int> d;              //deque容器中间存放评分
  for(int i=0;i<10;i++)
  {
    int score = rand()%41+60;
    d.push_back(score);   //存入十个随机数
  }
  sort(d.begin(),d.end());  //进行升序排序
  d.pop_front();     //删除十个中最低分
  d.pop_back();     //删除十个中最高分
  int sum = 0;
  for(deque<int>::iterator its = d.begin();its!=d.end();its++)
  {
    sum += (*its);  
  }
  int aver = sum/d.size();
  it->m_aver = aver;
  }
}
//打印平均分
void PrintPerson(vector<Person>&v)
{
  for(vector<Person>::iterator it = v.begin();it!=v.end();it++)
  {
  cout<<"选手:"<<it->m_name<<"  平均分:"<<it->m_aver<<endl;
  }
}
int main()
{
  srand((unsigned int)time(NULL));
  //1.创建五个选手
  vector<Person> v;
  CreatePerson(v);
  //测试
  /*for(vector<Person>::iterator it = v.begin();it!=v.end();it++)
  {
  cout<<"姓名:"<<it->m_name<<" 年龄:"<<it->m_age<<endl;
  }*/
  //2.给5个选手打分
  GradePerson(v);
  //3.显示平均分
  PrintPerson(v);
  system("pause");
  return 0;
}
相关文章
|
7月前
|
存储 编译器 C语言
vector讲解
vector讲解
77 0
|
2月前
|
存储 编译器 C++
C++之打造my vector篇(上)
C++之打造my vector篇(上)
32 0
|
2月前
|
算法 C++ 容器
C++之打造my vector篇(下)
C++之打造my vector篇(下)
35 0
|
4月前
|
存储 算法 C语言
【C++】vector的认识与使用
【C++】vector的认识与使用
|
5月前
|
存储 C语言 C++
【C++】vector的使用上
**C++ STL的vector简介与用法:** Vector是动态顺序数组,提供高效下标访问,支持动态增长。与数组类似但可自动调整大小。常用构造函数包括默认、填充、迭代器范围和拷贝构造。析构函数自动释放内存。赋值运算符执行深拷贝。迭代器接口包括`begin()`和`end()`(反向对应`rbegin()`和`rend()`),C++11增加了const版本以支持只读访问。示例代码展示了不同构造函数和迭代器的使用。
|
6月前
|
存储 索引 容器
vector
【6月更文挑战第17天】
58 0
|
7月前
|
算法 编译器 C++
(C++)vector介绍及其使用
(C++)vector介绍及其使用
70 0
【C++】vector的使用(上)
【C++】vector的使用(上)
|
设计模式 编译器 C++
【C++】vector的使用(下)
【C++】vector的使用(下)
|
C++ 容器
【C++】vector中的常见函数和使用
【C++】vector中的常见函数和使用
70 0