stack/queue容器

stack容器

std::stack 是 C++ 标准库中定义的容器适配器(container adaptor),它基于其他底层容器(如 std::dequestd::list std::vector)实现了后进先出(LIFO)的数据结构。栈容器没有迭代器,不支持遍历行为
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

stack的常用接口

1.构造函数

  • stack<T> stk; //stack采用模板类实现,默认构造,T为数据类型,如int等
  • stack(const stack &stk); //拷贝构造

对于 std::stack 容器类,拷贝构造函数用于创建一个与原始栈完全相同的新栈。它将复制原始栈中的所有元素,并保持它们的相对顺序和数量。这意味着在拷贝构造函数后,原始栈和新栈是独立的,它们各自管理自己的内存,对其中一个栈进行修改不会影响另一个栈。

std::stack<int> originalStack;

// 使用拷贝构造函数创建一个新的栈对象
 std::stack<int> newStack(originalStack);


2.赋值函数

tack& operator=(const stack& stk);//重载赋值运算符

用于将一个对象的值赋给另一个已经存在的对象。对于 std::stack 类来说,赋值运算符 operator= 被重载用于实现一个栈对象赋值给另一个栈对象的操作。
当使用赋值运算符 = 将一个栈对象赋给另一个栈对象时,它会首先清空目标栈,然后将源栈中的元素复制到目标栈中,以实现两个栈对象之间的值的拷贝。

		std::stack<int> sourceStack;
		sourceStack.push(10);
		sourceStack.push(20);
		sourceStack.push(30);

		std::stack<int> targetStack;

		//使用赋值运算符将源栈赋给目标栈
		 targetStack = sourceStack;
		 

3.数据存取

  • push(elem); //入栈,向栈顶添加元素
  • pop(); //出栈,删除栈顶元素
  • top(); //返回栈顶元素

4.大小操作

  • empty(); //判断栈是否为空
  • size(); //返回栈的大小

queue容器

queue 是一个容器适配器,它是基于 deque(双端队列)或 list(链表)实现的。它提供了队列数据结构的功能,即按照先进先出(FIFO)的顺序来访问和处理元素。queue容器没有迭代器,不支持遍历行为

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

queue的操作

  • push(const T& value): 将一个元素放入队列的末尾。
  • pop(): 删除队列的第一个元素。
  • front(): 返回队列的第一个元素的引用。
  • back(): 返回队列的最后一个元素的引用。
  • empty(): 检查队列是否为空。
  • size(): 返回队列中元素的数量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值