STL10-deque容器

deque 双端队列

 

deque 删除操作

deque案例:

#if 1
#include<iostream>
#include<deque>
using namespace std;
void PrintDeque(deque<int>& d) {for (deque<int>::iterator it = d.begin(); it != d.end(); it++) {cout << *it << " ";}cout << endl;
}
//deque初始化
void test01() {deque<int> d;deque<int> d2(10, 5);deque<int> d3(d2.begin(), d2.end());deque<int> d4(d3);//打印PrintDeque(d4);
}
/*
输出:
5 5 5 5 5 5 5 5 5 5
*///赋值 大小操作
void test02() {deque<int> d1;deque<int> d2,d3,d4;d1.assign(10, 5);d4.assign(10, 4);d2.assign(d1.begin(), d1.end()); //迭代器指定区间赋值d3 = d2; //等号赋值cout << "未交换前的d1和d4:" << endl;PrintDeque(d1);PrintDeque(d4);swap(d1, d4);cout << "交换后的d1和d4:" << endl;PrintDeque(d1);PrintDeque(d4);if (d1.empty())cout << "d1 is empty!" << endl;elsecout << "d1 is not empty!" << endl;d1.resize(5);  //后5个元素扔掉PrintDeque(d1);d1.resize(8);  //以默认值填充新位置PrintDeque(d1);d1.resize(10, 88);  //容器变长,以88进行填充PrintDeque(d1);}
/*
输出:
未交换前的d1和d4:
5 5 5 5 5 5 5 5 5 5
4 4 4 4 4 4 4 4 4 4
交换后的d1和d4:
4 4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5 5
d1 is not empty!
4 4 4 4 4
4 4 4 4 4 0 0 0
4 4 4 4 4 0 0 0 88 88
*/
//deque插入和删除
void test03() {deque<int> d1;d1.push_back(100);d1.push_front(200);d1.push_back(300);d1.push_back(400);d1.push_front(500);PrintDeque(d1);d1.pop_back();d1.pop_front();PrintDeque(d1);
}
/*
输出:
500 200 100 300 400
200 100 300
*/
int main()
{cout<<"test01" << endl;test01();cout << "test02" << endl;test02();cout << "test03" << endl;test03();
}
#endif

打分案例:


#include<iostream>
#include<vector>
#include<deque>
#include<algorithm>
#include<string>
using namespace std;
//评委打分案例(sort)
//创建5个选手,姓名,得分 10个评委对5个选手打分
//得分规则:去除最低分,去除最高分 去除平均分
//按得分对5名选手排名
#if 0  
//我的思路
typedef struct Person {
public:Person(double Score,char* Name):score(Score),name(Name){}
public:double score;char* name;
};
int main() {Person p1(0, "wang");Person p2(0, "yu");Person p3(0, "da");Person p4(0, "zhao");Person p5(0, "liu");vector<Person> v;v.push_back(p1);v.push_back(p2);v.push_back(p3);v.push_back(p4);v.push_back(p5);for (vector<Person>::iterator it = v.begin(); it != v.end(); it++) {cout << "请输入对" << (*it).name << "的打分:" << endl;deque<double> d;for (int i = 0; i < 10; i++){while (cin.get() != EOF)  //错误{d.push_back(cin.get());}}//排序 去除左右两端 然后去平均数 然后赋值给此选手的score 用map<Person,score>进行排序}return 0;
}
#endif#if 1
class Player {
public:Player(){}Player(double Score, string Name) :score(Score), name(Name) {}
public:double score;string name;
};
//创建选手
void Create_Player(vector<Player>& v) {string nameSpeed = "ABCDE";for (int i = 0; i < 5; i++){Player p;p.name = "选手";p.name += nameSpeed[i];p.score = 0;v.push_back(p);}}
void PrintdScore(int val) {cout << val << " ";
}
//打分
void set_Score(vector<Player>& v){for (vector<Player>::iterator it = v.begin(); it != v.end(); it++) {string name=(*it).name;//当前学生进行打分deque<int> dScore;for (int i = 0; i < 10; i++){int score = rand() % 41 + 60;dScore.push_back(score);}sort(dScore.begin(), dScore.end());  //默认从小到大for_each(dScore.begin(), dScore.end(), PrintdScore);cout << endl;//去除最高分 最低分dScore.pop_front();dScore.pop_back();//求平均分int totalScore = 0;for (deque<int>::iterator itt = dScore.begin(); itt != dScore.end(); itt++) {totalScore += (*itt);}int averageScore = totalScore / dScore.size();//保存分数(*it).score = averageScore;}}
//排序规则
bool mycompare(Player p1, Player p2) {return p1.score > p2.score;
}
//排名 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).name <<"得分:"<<(*it).score<< endl;}
}
int main() {vector<Player> vPlist;Create_Player(vPlist);set_Score(vPlist);Print_Rank(vPlist);return 0;
}
#endif

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STL11-stack容器

#if 1 #include<iostream> #include<stack> using namespace std;void test01() {//初始化stack<int> s1;stack<int> s2(s1);//stack操作s1.push(10);s1.push(20);s1.push(30);s1.push(40);cout << "栈顶元素&#xff1a;" << e…

java犀牛是什么意思_深入浅出Rhino:Java与JS互操作

2011年10月6日&#xff0c;一年一度的JavaOne大会隆重举行。JavaOne2011大会的主题之一介绍针对不同Java平台的产品路线图&#xff0c;这其中包括移动版(ME&#xff0c;Micro Edition)、标准版(SE&#xff0c;Standard Edition)以及企业版(EE&#xff0c;Enterprise Edition)。…

STL12-queue容器

queue容器 队列容器 先进先出 队列只能在一端插入 一端删除 队列不能遍历 不提供迭代器 不支持随机访问 #if 1 #include<iostream> #include<queue> using namespace std; void test01() {queue<int> q; //创建队列queue<int> q2(q);q.push(10);q.pu…

Leedcode7-binary-tree-postorder-traversal

#include<iostream> #include<vector> #include<stack> using namespace std; // Definition for binary tree 先序遍历 根左右 struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; #if 0 c…

用tensorflow搭建RNN(LSTM)进行MNIST 手写数字辨识

用tensorflow搭建RNN(LSTM)进行MNIST 手写数字辨识 循环神经网络RNN相比传统的神经网络在处理序列化数据时更有优势&#xff0c;因为RNN能够将加入上&#xff08;下&#xff09;文信息进行考虑。一个简单的RNN如下图所示&#xff1a; 将这个循环展开得到下图&#xff1a; 上一…

RNN入门

雷锋网 AI科技评论按&#xff1a;本文作者何之源&#xff0c;原文载于知乎专栏AI Insight&#xff0c;雷锋网(公众号&#xff1a;雷锋网) AI科技评论获其授权发布。 上周写的文章《完全图解RNN、RNN变体、Seq2Seq、Attention机制》介绍了一下RNN的几种结构&#xff0c;今天就来…

Java二进制小数表示_《Java编程的逻辑》笔记9--小数的二进制表示

小数计算为什么会出错&#xff1f;简要答案实际上&#xff0c;不是运算本身会出错&#xff0c;而是计算机根本就不能精确的表示很多数&#xff0c;比如0.1这个数。计算机是用一种二进制格式存储小数的&#xff0c;这个二进制格式不能精确表示0.1&#xff0c;它只能表示一个非常…

『TensorFlow』模型保存和载入方法汇总

一、TensorFlow常规模型加载方法 保存模型 tf.train.Saver()类&#xff0c;.save(sess, ckpt文件目录)方法 参数名称功能说明默认值var_listSaver中存储变量集合全局变量集合reshape加载时是否恢复变量形状Truesharded是否将变量轮循放在所有设备上Truemax_to_keep保留最近检…

STL13-list容器(链表)

链表是由一系列的结点组成&#xff0c;结点包括两个域&#xff1a;一个数据域&#xff0c;一个指针域 1、链表内存是非连续的&#xff0c;添加删除元素效率较高&#xff0c;时间复杂度都是常数项&#xff0c;不需要移动元素 2、链表只有在需要的时候才会分配内存 3、链表只要…

php 前往页面,PHP实现网页截图?

如何使用PHP实现网页截图PHP实现网页截图是一个在日常开发中不常见的需求&#xff0c;但是如果实现还是非常有意思的。目前业界有很多成熟的方案&#xff0c;下面我推荐使用一个很稳定的第三方服务来直接实现&#xff0c;该服务有如下特点&#xff1a;支持多线路支持登录截图支…

STL14-set/multiset容器

set只有一个方法就是insert #include<iostream> #include<set> //set和multiset是一个头文件 //set内部实现机制 红黑色&#xff08;平衡二叉树的一种&#xff09; //关联式容器 //set不允许有重复元素 //multiset运行有重复元素 //容器查找效率高 //容器根据元素的…

普通的java类型是指,String是一个很普通的类 - Java那些事儿

上一篇我们讲了Java中的数组&#xff0c;其实是为本章的内容做准备的&#xff0c;String这个类是我们在写Java代码中用得最多的一个类&#xff0c;没有之一&#xff0c;今天我们就讲讲它&#xff0c;我们打开String这个类的源码&#xff1a;声明了一个char[]数组&#xff0c;变…

STL15-map/multimap容器

map的key值不可以重复 multimap的key值可以重复 #if 1 #include<iostream> #include<map> using namespace std; //初始化 void test01() {//map容器参数 第一个参数key的类型 第二个参数value类型map<int, int> mymap;//插入元素 pair.first key值 pair.se…

php nginx日志分析,如何通过NGINX的log日志来分析网站的访问情况,试试这些命令...

想知道你的网站每天的访问情况吗&#xff1f;有多少人访问了&#xff1f;访问最多的页面是哪个&#xff1f;哪个时段访问的人最多&#xff1f;哪个地方访问的最多&#xff1f;每秒有多少请求&#xff1f;很好奇吧&#xff0c;只要你是使用了nginx进行请求抓发&#xff0c;那么就…

php带来互联网的影响,网络对我们的影响有哪些?

影响有&#xff1a;1、丰富了我们的业余生活&#xff1b;2、降低了获取知识的成本&#xff0c;降低了提升工作的能力的成本&#xff0c;提高了工作的效率&#xff0c;可以快速建立良好的人脉关系&#xff1b;3、让购物变得更加简单便捷&#xff1b;4、朋友间深度沟通与交流越来…

STL17-函数对象

仿函数&#xff1a; #include<iostream> #include<vector> #include<algorithm> using namespace std; //仿函数&#xff08;函数对象&#xff09;重载“&#xff08;&#xff09;”操作符 使类对象可以像函数那样调用 //仿函数是一个类&#xff0c;不是一个…

STL18常用算法

#include<iostream> #include<algorithm> #include<vector> using namespace std; //transform 将一个容器中的元素搬运在另一个容器中 #if 0 //错误 struct PrintVector {void operator()(int v) {cout << v << " ";} }; void test0…

php中页面平滑回到顶部代码,原生JS实现平滑回到顶部组件

返回顶部组件是一种极其常见的网页功能&#xff0c;需求简单&#xff1a;页面滚动一定距离后&#xff0c;显示返回顶部的按钮&#xff0c;点击该按钮可以将滚动条滚回至页面开始的位置。实现思路也很容易&#xff0c;只要改变document.documentElement.scrollTop或document.bod…

C++基础01-C++对c的增强

所谓namespace&#xff0c;是指标识符的各种可见范围。C标准程序库中的所 有标识符都被定义于一个名为std的namespace中。 一 &#xff1a;<iostream>和<iostream.h>格式不一样&#xff0c;前者没有后缀&#xff0c;实际上&#xff0c; 在你的编译器include文件夹…

C++基础02-C++对c的拓展

变量名实质上是一段连续存储空间的别名&#xff0c;是一个标号(门牌号) 通过变量来申请并命名内存空间. 通过变量的名字可以使用存储空间. 变量名&#xff0c;本身是一段内存的引用&#xff0c;即别名(alias). 引用可以看作一个已定义变量的别名。 引用的语法&#xff…