deque大小操作,代码见下
#include<iostream>
#include<deque>
using namespace std;
void printDeque(deque<int> &d) {
//for (deque<int>::iterator iter = d.begin(); iter != d.end(); iter++) {
// cout << *iter << " ";
//}
//cout << endl;
for (int i = 0; i < d.size(); ++i) {
cout << d[i];
}
cout << endl;
}
/*
1 empty
2 size
3 resize
*/
int main() {
deque<int> d;
cout << "d.empty() = " << d.empty() << endl;
cout << "d.size() = " << d.size() << endl;
d.assign({ 1, 2, 3 });
cout << "d.empty() = " << d.empty() << endl;
cout << "d.size() = " << d.size() << endl;
printDeque(d);
d.resize(18);
cout << "d.size(): " << d.size() << endl;
printDeque(d);
d.resize(20, 6);
cout << "d.size(): " << d.size() << endl;
printDeque(d);
d.resize(10000);
d.resize(5);
cout << "d.size(): " << d.size() << endl;
printDeque(d);
return 0;
}
以下是输出结果,可辅助理解
deque数据插入,有以下几种形式,见代码
#include<iostream>
#include<deque>
using namespace std;
void printDeque(deque<int> &d) {
//for (deque<int>::iterator iter = d.begin(); iter != d.end(); iter++) {
// cout << *iter << " ";
//}
//cout << endl;
for (int i = 0; i < d.size(); ++i) {
cout << d[i];
}
cout << endl;
}
/*
1 push_front 头插
2 push_back 尾插
3 insert 中间插入
*/
int main() {
deque<int> d;
// 1 push_front
d.push_front(-1);
d.push_front(-2);
d.push_front(-3);
// -3 -2 -1
// 2 push_back
d.push_back(1);
d.push_back(2);
d.push_back(3);
// 3 insert
d.insert(d.begin() + 3, 0);
printDeque(d);
d.insert(d.end() - 1, 5, 8);
printDeque(d);
d.insert(d.begin() + 1, d.begin() + 4, d.begin() + 6);
printDeque(d);
return 0;
}
deque数据删除,代码见下:
#include<iostream>
#include<deque>
using namespace std;
void printDeque(deque<int> &d) {
//for (deque<int>::iterator iter = d.begin(); iter != d.end(); iter++) {
// cout << *iter << " ";
//}
//cout << endl;
for (int i = 0; i < d.size(); ++i) {
cout << d[i];
}
cout << endl;
}
/*
1 pop_front 头删
2 pop_back 尾删
3 erase、clear
*/
int main() {
deque<int> d = {-1, 9, 8, 5, 2, 1, 1, -1};
printDeque(d);
d.pop_front();
printDeque(d);
d.pop_back();
printDeque(d);
deque<int>::iterator it = d.erase(d.begin() + 2);
printDeque(d);
cout << *it << endl;
it = d.erase(it);
printDeque(d);
cout << *it << endl;
d.erase(d.begin() + 1, d.begin() + 3);
printDeque(d);
d.clear();
printDeque(d);
return 0;
}
结果见下,帮助理解: