deque容器
双端数组
构造与赋值与vector基本相同
插入操作
push_front()前插
push_back()后插
pop_front()前删
pop_back()后删
insert()插入
sort(iterator begin , iterator end)对区间进行排序
评委打分案例
#include<iostream>
#include<vector>
#include<deque>
#include<string>
#include<ctime>
#include<cstdlib>
#include<algorithm>
using namespace std;
int My_Random() {
int random_number = rand() % 100;
return random_number;
}
void My_Deque_Printf(int val) {
cout << val << " ";
}
class student {
public:
student(string name, int score) {
p_name = name;
p_score = score;
}
string p_name;
int p_score;
};
void Creat_Person(vector<student>& s) {
string nameSeed = "ABCDE";
for (size_t i = 0; i < 5; i++)
{
string name = "学生";
name += nameSeed[i];
int score = My_Random();
student stu(name, score);
s.push_back(stu);
}
}
void Set_judg_score(vector<student> &v) {
for (vector<student>::iterator itv = v.begin(); itv != v.end(); itv++) {
deque<int> d;
for (size_t i = 0; i < 10; i++)
{
int score = My_Random();
d.push_back(score);
}
sort(d.begin(), d.end());
d.pop_back();
d.pop_front();
for_each(d.begin(), d.end(), My_Deque_Printf);
cout << endl;
int sum = 0;
for (deque<int>::iterator dbe = d.begin();dbe!=d.end(); dbe++)
{
sum += *dbe;
}
double average = sum/d.size();
itv->p_score = average;
}
}
int main() {
vector<student> v;
Creat_Person(v);
Set_judg_score(v);
for (vector<student>::iterator itv = v.begin();itv != v.end(); itv++)
{
cout << (*itv).p_name << " " << (*itv).p_score << endl;
}
system("pause");
return 0;
}
using namespace std;
int My_Random() {
int random_number = rand() % 100;
return random_number;
}
void My_Deque_Printf(int val) {
cout << val << " ";
}
void Creat_Member() {
vector<deque<int>> v1;
deque<int> di1;
deque<int> di2;
deque<int> di3;
deque<int> di4;
deque<int> di5;
//for_each(di1.begin(), di1.end(), My_Insert_deque);
for (size_t i = 0; i < 10; i++)
di1.push_back(My_Random());
for (size_t i = 0; i < 10; i++)
di2.push_back(My_Random());
for (size_t i = 0; i < 10; i++)
di3.push_back(My_Random());
for (size_t i = 0; i < 10; i++)
di4.push_back(My_Random());
for (size_t i = 0; i < 10; i++)
di5.push_back(My_Random());
v1.push_back(di1);
v1.push_back(di2);
v1.push_back(di3);
v1.push_back(di4);
v1.push_back(di5);
//for_each(di1.begin(), di1.end(), My_Deque_Printf);
for (vector<deque<int>> ::iterator vbegin = v1.begin(); vbegin != v1.end(); vbegin++)
{
for (deque<int> ::iterator dbegin = (*vbegin).begin(); dbegin != (*vbegin).end(); dbegin++)
cout << *dbegin << " ";
cout << endl;
}
for (vector<deque<int>> ::iterator vbegin = v1.begin(); vbegin != v1.end(); vbegin++){
sort((*vbegin).begin(), (*vbegin).end());
(*vbegin).pop_front();
(*vbegin).pop_back();
}
cout << endl;
cout << endl;
cout << endl;
for (vector<deque<int>> ::iterator vbegin = v1.begin(); vbegin != v1.end(); vbegin++)
{
for (deque<int> ::iterator dbegin = (*vbegin).begin(); dbegin != (*vbegin).end(); dbegin++)
cout << *dbegin << " ";
cout << endl;
}
}
int main() {
Creat_Member();
system("pause");
return 0;
}