stack容器和queue容器常见API

注意:栈和队列不支持遍历操作,不支持下标访问元素。
话不多说,直接来代码。


1.stack容器

#include<iostream>
#include<stack>
#include<cstdlib>
using namespace std;

//栈:先进后出,只能在栈顶入栈和出栈,栈顶进行操作
//没有迭代器,不存在遍历行为

#include<iostream>
#include<stack>
#include<cstdlib>
using namespace std;

//栈:先进后出,只能在栈顶入栈和出栈,栈顶进行操作
//没有迭代器,不存在遍历行为,不能通过下标访问数据

void test01() {
	stack<int> s;
	//从栈顶插入数据
	s.push(1);
	s.emplace(2);   
	s.emplace(3);
	s.emplace(4);
	s.push(5);

	cout << "栈中数据:";
	while (!s.empty()) {    //判断栈是否为空
		if (s.size() == 1)  //返回栈的大小
			cout << s.top() << endl;   //top()返回栈顶数据的引用
		else cout << s.top() << " ";
		s.pop();
	}
}

void test02() {
	stack<int> s;    //默认构造
	s.emplace(1);
	s.emplace(2);

	stack<int> s2(s); //拷贝构造
	stack<int> s3;
	s3 = s2;          //① 重载赋值=,修改栈对象
	s3.top() = 4000;  //② 重载赋值=,修改栈顶数据
	while (!s3.empty()) {
		if (s3.size() == 1)
			cout << s3.top() << endl;
		else cout << s3.top() << " ";
		s3.pop();
	}
}

int main() {
	//test01();
	test02();

	system("pause");
	return 0;
}

2.queue容器

#include<iostream>
#include<queue>
using namespace std;

//队列:先进先出,在队头出队,在队尾入队
//没有迭代器,不支持遍历操作,不能通过下标访问数据

void test01() {
	queue<int> q;     //默认构造
	q.emplace(100);   //队尾插入
	q.push(200);

	queue<int> q2(q); //拷贝构造
	queue<int> q3;
	q3 = q;          //重载=,实现队列对象赋值
	cout << "队列数据:";
	while (!q.empty()) { //判断是否为空
		if (q.size() == 1)  //返回队列的大小
			cout << q.front() << endl;   //获取队头元素(第一个数据)
		else cout << q.front() << " ";
		q.pop();   //队头元素出队
	}
	q3.front() = 30000;    //重载=,修改队头元素
	q3.back() = 400000;    //获取队尾元素(最后一个数据)
	cout << "队列数据:";
	while (!q3.empty()) {
		if (q3.size() > 1)
			cout << q3.front() << " ";
		else cout << q3.front() << endl;
		q3.pop();  
	}
}

int main() {
	test01();

	system("pause");
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值