STL--deque容器
程序员文章站
2024-02-11 17:03:04
...
1概念
1.1双向容器
1.2原理图
- 中间插入的和删除的操作效率低
- 可以随机存储 效率高
2常用API
2.1构造函数
void test1(){
deque<int> d1;
//符值10个5
deque<int> d2(10,5);
deque<int> d3(d2.begin(),d2.end());
deque<int> d4(d3);
for(deque<int>::iterator it=d4.begin();it!=d4.end();it++){
cout<<*it<<" ";
}
cout<<endl;
}
2.2初始化函数
void test2(){
deque<int> d1;
deque<int> d2;
deque<int> d3;
d1.assign(10,5);
d2.assign(d1.begin(),d1.end());
d3=d2;
d1.swap(d2);//交换两个空间的元素
}
2.3大小操作
2.4双端插入和删除操作
void test3(){
deque<int> d1;
d1.push_back(100);
d1.push_front(200);
d1.push_front(200);
d1.push_front(200);
int ret1=d1.back();
d1.pop_back();
int ret2=d1.front();
d1.pop_front();
for(deque<int>::iterator it=d1.begin();it!=d1.end();it++){
cout<<*it<< " ";
}
}
2.5数据存储
2.6插入操作
2.7 删除操作
3案例
#include<iostream>
#include<vector>
#include<string>
#include<deque>
#include<algorithm>
using namespace std;
class Player{
public:
Player(){}
Player(string name,int sorce):mName(name),mSorce(sorce){}
string mName;
int mSorce;
};
void Create_play(vector<Player>& v){
string name="abcde";
for(int i=0;i<5;i++){
Player p;
p.mName+=name[i];
p.mSorce=0;
v.push_back(p);
}
}
void PrintScore(int val){
cout<<val<<" ";
}
void Set_Sorce(vector<Player>& v){
for(vector<Player>::iterator it=v.begin();it!=v.end();it++){
//对当前的学生的分da
deque<int> dsorce;
for(int ji=0;ji<10;ji++){
int sorce=rand()%41+60;
dsorce.push_back(sorce);
}
//排序
sort(dsorce.begin(),dsorce.end());
//for_each(dsorce.begin(),dsorce.end(),PrintScore);
//cout<<endl;
//去除最高分 去除最低分
dsorce.pop_front();
dsorce.pop_back();
int totalsorce=0;
for(deque<int>::iterator dit=dsorce.begin();dit!=dsorce.end();dit++){
totalsorce+=*dit;
}
int avgsroce=totalsorce/dsorce.size();
//保存分数
(*it).mSorce=avgsroce;
}
}
//排序规则
bool mycompare(Player& p1,Player& p2){
return p1.mSorce<p2.mSorce;
}
//给选手排名
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).mName<<endl;
}
}
int main(){
//定义vector 保存选手信息
vector<Player> vPlist;
Create_play(vPlist);
Set_Sorce(vPlist);
Print_rank(vPlist);
return 0;
}
上一篇: 【机器学习笔记】——逻辑回归 & 交叉熵
下一篇: 微信小程序 实现路线规划
推荐阅读
-
STL--deque容器
-
laravel容器延迟加载以及auth扩展详解,laravelauth_PHP教程
-
PHP 对数组数值进行排序,使用另一个容器,php 数组排序
-
.net 4.5部署到docker容器的完整步骤
-
spring boot容器启动流程
-
Docker 限制容器对内存的使用详解
-
docker compose linux tomcat 安装(多容器docker) 博客分类: linuxdockercompose dockercomposelinuxtomcat安装
-
laravel容器延迟加载以及auth扩展详解_PHP教程
-
Docker系列之使用Docker Compose编排容器
-
Docker 容器如何使用PHP-FPM在后台一直运行