STL之vector,deque学习实例
```
#include<iostream>
#include<algorithm>
#include<ctime>
#include<vector>
#include<deque>
#include<cstring>
#include<cstdlib>
using namespace std; /*评委打分案例(sort算法排序)
创建5个选手(姓名,得分),10个评委对5个选手进行打分
得分规则:去除最高分,去除最低分,取出平均分
按得对5个选手进行排名*/ //选手类
class Player{
public:
string mName;
int mScore;
public:
Player(){}
Player(string name,int score):mName(name),mScore(score){} }; //创建选手
void Create_Player(vector<Player>& v){
string nameSeed="ABCDE";
for(int i=; i<; i++ ){
Player p;
p.mName="选手";
p.mName+=nameSeed[i];
p.mScore=; v.push_back(p);
}
} void PrintScore(int val){
cout<<val<<" ";
}
//打分
void Set_Score(vector<Player>& v){
for(vector<Player>::iterator it=v.begin(); it!=v.end(); it++ ){
//当前学生进行打分
deque<int> dScore;
//srand(((unsigned) time(NULL)));
for(int i=; i<; i++ ){
int score=rand()%+;//产生[60,101)之间的数字
dScore.push_back(score);
} //对分数进行排序
sort(dScore.begin(),dScore.end());
//for_each(dScore.begin(),dScore.end(),PrintScore);
//cout<<endl; //去除最高分,去除最低分
dScore.pop_front();
dScore.pop_back();
//求平均分
int totalScore=;
for(deque<int>::iterator vec=dScore.begin(); vec!=dScore.end(); vec++ ){
totalScore+=(*vec);
} int avgScore=totalScore/dScore.size();
//保存分数
(*it).mScore=avgScore;
}
} //排名规则
bool mycompare(Player& p1,Player& p2){
return p1.mScore>p2.mScore;//从大到小排序
}
//根据选手分数排名,sort默认从小到大,希望从大到小
void Print_Rank(vector<Player>& v){
//排序
sort(v.begin(),v.end(),mycompare);
//打印
for(vector<Player>::iterator it=v.begin(); it!=v.end(); it++ ){
cout<<"姓名:"<<(*it).mName<<" 得分:"<<(*it).mScore<<endl;
}
} int main(){ //定义vector容器,保存选手信息
vector<Player> vPlist;
Create_Player(vPlist);
Set_Score(vPlist);
Print_Rank(vPlist); return ;
} ```
STL之vector,deque学习实例的更多相关文章
- [STL] Implement "vector", ”deque“ and "list"
vector “可增的”数组 vector是一块连续分配的内存,从数据安排的角度来讲,和数组极其相似. 不同的地方就是: (1) 数组是静态分配空间,一旦分配了空间的大小,就不可再改变了: (2) v ...
- STL中vector、list、deque和map的区别
1 vector 向量 相当于一个数组 在内存中分配一块连续的内存空间进行存储.支持不指定vector大小的存储.STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capac ...
- 【转】STL中vector、list、deque和map的区别
1.vector 向量 相当于一个数组 在内存中分配一块连续的内容空间进行存储.支持不指定vector大小的存储.STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capacity()函数 ...
- stl 中List vector deque区别
stl提供了三个最基本的容器:vector,list,deque. vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此 它能非常好的支持随 ...
- C++STL之Vector向量详解,用法和例子 一起学习 一起加油
C++ STL之vector用法总结 1 ...
- STL序列式容器学习总结
STL序列式容器学习总结 参考资料:<STL源码剖析> 参考网址: Vector: http://www.cnblogs.com/zhonghuasong/p/5975979.html L ...
- 带你深入理解STL之Vector容器
C++内置了数组的类型,在使用数组的时候,必须指定数组的长度,一旦配置了就不能改变了,通常我们的做法是:尽量配置一个大的空间,以免不够用,这样做的缺点是比较浪费空间,预估空间不当会引起很多不便. ST ...
- 从零开始写STL—容器—vector
从0开始写STL-容器-vector vector又称为动态数组,那么动态体现在哪里?vector和一般的数组又有什么区别?vector中各个函数的实现原理是怎样的,我们怎样使用会更高效? 以上内容我 ...
- 【C++】STL,vector容器操作
C++内置的数组支持容器的机制,但是它不支持容器抽象的语义.要解决此问题我们自己实现这样的类.在标准C++中,用容器向量(vector)实现.容器向量也是一个类模板.标准库vector类型使用需要的头 ...
随机推荐
- CSS 布局整理
1.css垂直水平居中 效果: HTML代码: <div id="container"> <div id="center-div">&l ...
- C#代码安装Windows服务
using System;using System.Collections.Generic;using System.ServiceProcess;using System.Configuration ...
- ui-router 1.0 002 未登录跳转到login
ui-router transitionhooks 统一控制路由跳转, 前台控制如果没有登录就跳转到登录页面, 当然也可以在后台控制, 如果没有登录就返回对应的错误码, 然后在response中直接跳 ...
- Ubuntu下搭建tftp服务器最简单方法
今天开始调试ARM的板子,要通过tftp下载到板子上,所以又要配置tftp服务器,真的烦死了… (本人酷爱装系统,所以经常都要搞配置) 因为之前已经在Ubuntu下搭建过很多次tftp服务器了,但是一 ...
- ado执行upadte
/// <summary> /// 目标数据库执行ExecuteNonQuery操作 /// </summary> /// <param name="sql&q ...
- pod update报错(Cocoapods: Failed to connect to GitHub to update the CocoaPods/Specs specs repo)报错解决方案
好长一段时间没动pods,今天偶然需要更新一个库,于是执行了下pod update,然后惊悚的出现了这个报错: [!] Failed to connect to GitHub to update th ...
- 移除list中null元素
查询结果为null, list.size()却是1 移除该null元素 totalList.removeAll(Collections.singleton(null));
- 12C新特性 -- 共享asm口令文件
12C中,ASM口令文件,可以提供本地.远程登录asm的验证.当然,要想使用asm口令文件验证,必须为每个asm创建一个口令文件. 如果是使用asm存储,asmca在配置asm磁盘组的会后,会自动为a ...
- Linux内核剖析(一)Linux的历史
Unix操作系统 Unix的由来 汤普逊和里奇最早是在贝尔实验室开发Unix的,此后的10年,Unix在学术机构和大型企业中得到了广泛的应用,当时的UNIX拥有者AT&T公司以低廉甚至免费的许 ...
- MVC通用控件库展示-MVC4.0+WebAPI+EasyUI+Knockout--SNF快速开发平台3.0
在我们开发中怎么才能提高效率,就是要有大量的公共组件(控件)可以直接使用而不用自己再开发一遍,既然是公共控件那也得简单实用才行.下面就介绍一下SNF-MVC当中的控件库. 总体控件库展示: 1.通用用 ...