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_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;

}

结果见下,帮助理解:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值