【C++STL基础入门】stack栈的增删查等操作的使用

文章目录

  • 前言
  • 一、stack元素访问
    • 1.1 元素访问之top
  • 二、stack修改
    • 2.1 stack修改之push()函数
    • 2.2 stack修改之pop()函数
    • 2.3 stack修改之swap()交换函数
    • 2.4 stack修改之emplace()在顶部原位构造元素
  • 总结


前言

在C++的标准模板库(STL)中,stack(栈)是一个容器适配器,它提供了一种后进先出(LIFO)的数据结构。栈是一种简单但常用的数据结构,它在很多场景中都有广泛的应用。本文将介绍stack的基本概念和常用操作,帮助初学者快速入门使用C++ STL中的stack。


一、stack元素访问

1.1 元素访问之top

原型:value_type& top()
功能:返回栈顶元素的引用,但不删除该元素。
参数:无。
返回值:返回栈顶元素的引用。
示例代码:

#include 
#include 

int main() {
    std::stack<int> myStack;
    myStack.push(10);
    myStack.push(20);
    myStack.push(30);

    int topElement = myStack.top();
    std::cout << "Top element: " << topElement << std::endl;

    return 0;
}

【C++STL基础入门】stack栈的增删查等操作的使用_第1张图片

输出:

Top element: 30

二、stack修改

2.1 stack修改之push()函数

原型:void push(const value_type& value)
功能:将元素压入栈顶。
参数:要压入栈顶的元素的值。
返回值:无。
示例代码:

#include 
#include 

int main() {
    std::stack<int> myStack;

    myStack.push(10);
    myStack.push(20);
    myStack.push(30);

    std::cout << "Stack size after push operations: " << myStack.size() << std::endl;

    return 0;
}

【C++STL基础入门】stack栈的增删查等操作的使用_第2张图片

输出:

Stack size after push operations: 3

函数用于将元素添加到容器的末尾。

2.2 stack修改之pop()函数

原型:void pop()
功能:弹出栈顶元素,即删除栈顶元素。
参数:无。
返回值:无。
示例代码:

#include 
#include 

int main() {
    std::stack<int> myStack;
    myStack.push(10);
    myStack.push(20);
    myStack.push(30);

    myStack.pop();

    std::cout << "Stack size after pop operation: " << myStack.size() << std::endl;

    return 0;
}

【C++STL基础入门】stack栈的增删查等操作的使用_第3张图片

输出:

Stack size after pop operation: 2

2.3 stack修改之swap()交换函数

原型:void swap(stack& other)
功能:交换两个栈的内容。
参数:另一个要交换的栈。
返回值:无。
示例代码:

#include 
#include 

int main() {
    std::stack<int> stack1;
    stack1.push(10);
    stack1.push(20);
    stack1.push(30);

    std::stack<int> stack2;
    stack2.push(40);
    stack2.push(50);

    stack1.swap(stack2);

    std::cout << "Stack 1 size: " << stack1.size() << std::endl;
    std::cout << "Stack 2 size: " << stack2.size() << std::endl;

    return 0;
}

【C++STL基础入门】stack栈的增删查等操作的使用_第4张图片

输出:

Stack 1 size: 2
Stack 2 size: 3

2.4 stack修改之emplace()在顶部原位构造元素

原型:template reference emplace(Args&&… args)
功能:在栈顶原位构造一个元素。
参数:要构造元素所需的参数。
返回值:对新构造元素的引用。
示例代码:

#include 
#include 
#include 

int main() {
    std::stack<std::string> myStack;
    myStack.emplace("Hello");
    myStack.emplace("World!");

    std::cout << "Stack size: " << myStack.size() << std::endl;
    std::cout << "Top element: " << myStack.top() << std::endl;

    return 0;
}

【C++STL基础入门】stack栈的增删查等操作的使用_第5张图片
它的目的是在容器中就地构造元素,而不是进行副本创建。

输出:

Stack size: 2
Top element: World!

总结

本文介绍了C++ STL中的stack栈的基本概念和常用操作。stack是一个容器适配器,提供了一种后进先出(LIFO)的数据结构,非常适用于需要快速访问最近添加的元素的场景。

通过使用头文件,我们可以轻松地创建一个栈对象,并通过一系列操作来管理栈中的元素。

首先,我们可以使用push(element)函数将元素添加到栈的顶部。这意味着新的元素成为了最顶部,而之前添加的元素则往下移动。

要从栈中移除栈顶元素,我们可以使用pop()函数。这会删除栈顶的元素,并使下面的元素成为新的栈顶。

通过使用top()函数,我们可以访问栈顶元素的值,而不会删除它。这对于需要查看栈顶元素但不改变栈的结构的情况非常有用。

我们还可以使用empty()函数来检查栈是否为空。如果栈为空,表示没有任何元素存在;如果栈不为空,意味着至少有一个元素存在。

要获取栈中元素的数量,我们可以使用size()函数。它返回栈中当前的元素数量,帮助我们了解栈的大小。

通过使用示例代码,我们演示了stack栈的基本操作。这个示例包括创建栈对象、添加元素、获取栈的大小、访问栈顶元素以及移除栈顶元素等操作。这有助于加深你对stack栈的理解并且可以用作参考。

通过学习本文中介绍的内容,你现在应该对C++ STL中的stack栈有了较详细的了解。你可以利用stack栈来实现后进先出的数据结构,并根据具体的需求进行相应的增删查等操作。

使用stack栈可以帮助我们更高效地管理数据,尤其在需要维护元素顺序并以最后添加的元素为主导的情况下,它是一个非常有用的工具。

希望本文对您学习C++ STL中的stack栈有所帮助。祝愉快学习!

你可能感兴趣的:(C++STL,c++,开发语言,算法,C,软件工程,后端,stl)