• C++stack栈


    C++ Stack(堆栈) 是一个容器类的改编,为程序员提供了堆栈的全部功能,——也就是说实现了一个先进后出(FILO)的数据结构

    需要:#include <stack>  

    栈(stack)是限制插入和删除只能在一个位置上进行的线性表,该位置在表的末端,叫做栈顶。添加元素只能在尾节点后添加,删除元素只能删除尾节点,查看节点也只能查看尾节点。添加、删除、查看依次为入栈(push)、出栈(pop)、栈顶节点(top)。形象的说,栈是一个先进后出(LIFO)表,先进去的节点要等到后边进去的节点出来才能出来

    stack类可以用任何顺序容器vector、list、deque实现。默认情况下,stack用deque实现

    为了达到最佳性能,用deque或vector作为stack的基础容器

    #include<iostream>
    #include <stack>
    #include <queue>
    #include <list>
    
    int main()
    {
        
        std::stack<int> deque_stack;  //声明stack,默认以deque容器实现
            
        std::stack<int, std::vector<int>> vector_stack;  //声明stack,以vector容器实现
            
        std::stack<int, std::list<int>> list_stack;  //声明stack,以list容器实现
    
        std::stack<int> stack;
        std::stack<int> stack2 = stack; //声明一个int类型的stack2,将stack的元素复制给stack2
        std::stack<int> stack3(stack); //声明一个int类型的stack3,将stack的元素复制给stack3
    
        bool b= stack.empty(); //判断是否为空
        //若stack1为空,则返回true
        std::cout << b << std::endl;
        
        for (int i = 0; i < 5; ++i) {
            stack.push(i); //把数据放入栈顶
        }
        
        int n=stack.size(); //stack当前存放的元素的个数
        std::cout << n << std::endl;
    
        int x=stack.top(); //返回栈顶元素
        //条件是stack不为空
    
        std::cout << x << std::endl;
    
        stack.pop();  //删除stack栈顶元素
    
        stack.emplace(20);  //把数据放入栈顶
        /*
        push() 实际上是调用的底层容器的push_back()函数,新元素的值是push函数参数的一个拷贝。
        emplace() 实际上是调用的底层容器的emplace_back()函数,新元素的值是在容器内部就地构造的,不需要移动或者拷贝
        */
    
        stack.swap(stack2);  //将stack和stack2交换
    
        return 0;
    }

  • 相关阅读:
    Security headers quick reference Learn more about headers that can keep your site safe and quickly look up the most important details.
    Missing dollar riddle
    Where Did the Other Dollar Go, Jeff?
    proteus 与 keil 联调
    cisco router nat
    router dhcp and dns listen
    配置802.1x在交换机的端口验证设置
    ASAv931安装&初始化及ASDM管理
    S5700与Cisco ACS做802.1x认证
    playwright
  • 原文地址:https://www.cnblogs.com/liming19680104/p/13557681.html
Copyright © 2020-2023  润新知