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类型使用需要的头 ...
随机推荐
- 【T03】理解私有地址和NAT
1.私有地址包括三块: 10.0.0.0 到 10.255.255.255 172.16.0.0 到 172.31.0.0 192.168.0.0 到 192.168.255.255 2.私有地址接入 ...
- sql语句语法
13.1. 数据定义语句 . ALTER DATABASE语法 . ALTER TABLE语法 . CREATE DATABASE语法 . CREATE INDEX语法 . CREATE TABLE语 ...
- 自动化测试中CSS SELECTOR选择器的一些写法
常见符号: #表示id .表示class >表示子元素,层级 一个空格也表示子元素,但是是所有的后代子元素,相当于xpath中的相对路径 #input 选择id为input的节点 .Volvo ...
- iostat查看linux硬盘IO性能
rrqm/s: 每秒进行 merge 的读操作数目.即 delta(rmerge)/swrqm/s: 每秒进行 merge 的写操作数目.即 delta(wmerge)/sr/s: ...
- 【Java】数组不能通过toString方法转为字符串
java里,所有的类,不管是java库里面的类,或者是你自己创建的类,全部是从object这个类继承的.object里有一个方法就是toString(),那么所有的类创建的时候,都有一个toStrin ...
- OpenCV 学习笔记 05 人脸检测和识别
本节将介绍 Haar 级联分类器,通过对比分析相邻图像区域来判断给定图像或子图像与已知对象是否匹配. 本章将考虑如何将多个 Haar 级联分类器构成一个层次结构,即一个分类器能识别整体区域(如人脸) ...
- linux下zip包处理
先来看例子: zip命令可以用来将文件压缩成为常用的zip格式.unzip命令则用来解压缩zip文件. 1. 我想把一个文件abc.txt和一个目录dir1压缩成为yasuo.zip: # zip - ...
- python学习笔记(23)——python压缩bin包
说明(2017-12-25 10:43:20): 1. CZ写的压缩bin包代码,记下来以后好抄. # coding:utf-8 ''' Created on 2014年8月14日 @author: ...
- apache kylin2.10在原生hadoop集群上安装
Install Kylin Download latest Kylin binaries at http://kylin.apache.org/download Export KYLIN_HOME p ...
- React Native - FlexBox弹性盒模型
FlexBox布局 1. 什么是FlexBox布局? 弹性盒模型(The Flexible Box Module),又叫FlexBox,意为"弹性布局",旨在通过弹性的方式来对 ...