stack容器
std::stack
是 C++ 标准库中定义的容器适配器(container adaptor),它基于其他底层容器(如 std::deque
、std::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()
: 返回队列中元素的数量。