C++ deque大小操作、deque数据插入、deque数据删除
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_frontd.push_front(-1);d.push_front(-2);d.push_front(-3);// -3 -2 -1// 2 push_backd.push_back(1);d.push_back(2);d.push_back(3);// 3 insertd.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;}
结果见下,帮助理解: