首页 > 编程语言 >C++基础-STL stack 栈

C++基础-STL stack 栈

时间:2023-08-21 19:03:22浏览次数:39  
标签:deque 先进后出 STL 创建 s1 元素 C++ stack

stack 栈

1、特性

在一端插入元素,在同一端删除元素,具有先进后出的特性。 底层实现一般用 list 或 deque,封闭头部即可,数据先进后出,不支持随机访问。

2、适用情况

需要一个先进后出结构时

3、头文件

#include<stack>

4、复杂度

插入:push(),O(1) 删除:pop(),O(1) 查找(栈顶):top(),O(1)

5、定义及常用函数

//默认构造函数
   stack<int> first;//创建一个空的stack

 //复制构造函数,使用已有的stack创建新的stack
   stack<int, list<int> >   s1;
   stack<int, list<int> >   s2(s1);//利用 s1 ,创建一个以双向链表为底层容器的空堆栈对象 s2 

   //使用已创建的deque创建stack
   deque<int> mydeque (3,100);          // 包含3个元素deque
   stack<int> second (mydeque);         // 使用deque初始化stack

   //创建vector为底层的stack,和使用已有stack初始化新的stacck
   std::stack<int,std::vector<int> > third;  // 使用vector创建的空stack
   std::stack<int,std::vector<int> > fourth (myvector);
size( ) :返回栈中元素个数
top( ) :返回栈顶的元素
pop( ) :从栈中取出并删除元素
push(e) :向栈中添加元素e
empty( ) :栈为空时返回true

标签:deque,先进后出,STL,创建,s1,元素,C++,stack
From: https://blog.51cto.com/u_16200950/7178392

相关文章

  • 北大ACM poj1050 To the Max(C++)
    TotheMaxTimeLimit:1000MS MemoryLimit:10000KTotalSubmissions:32446 Accepted:16930DescriptionGivenatwo-dimensionalarrayofpositiveandnegativeintegers,asub-rectangleisanycontiguoussub-arrayofsize1*1orgreaterlocatedwithi......
  • 8、C++ 继承
    参考资料:C++继承|菜鸟教程(runoob.com)面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。当创建一个类时,您不需要重新编写新的数据成员和成员函......
  • vulnstack1 红日靶场渗透详解
    目录环境搭建信息收集PhpMyAdmin后台GetshellintooutfileMysql日志文件写入shellCS后渗透MSF后渗透知识补充nmap参数分类参数速查表dirsearch环境搭建ip段设置kali(coleak):192.168.145.139Windows7(stu1):192.168.10.181、192.168.145.140Winserver2008(owa):192.168.1......
  • C++文档入口汇总
    一、C++参考手册(中文)cppreferencehttps://zh.cppreference.com/二、菜鸟教程(中文)https://www.runoob.com/cplusplus/cpp-tutorial.html三、C++的常用库及其文档:标准模板库(STL)提供了许多数据结构和算法,如向量、链表、队列、堆栈、映射和排序算法等。其中文文档链接:https://......
  • c++算法之哈希表
    啥是哈希表 哈希表,类似散列表,是一种存储数据的一种方式。只能说是有点奇葩。他是通过将值转换成数组的下标,也就是f[x]=x的意思,大家估计都能理解吧......
  • 4.5 C++ Boost 文件目录操作库
    Boost库是一个由C/C++语言的开发者创建并更新维护的开源类库,其提供了许多功能强大的程序库和工具,用于开发高质量、可移植、高效的C应用程序。Boost库可以作为标准C库的后备,通常被称为准标准库,是C标准化进程的重要开发引擎之一。使用Boost库可以加速C应用程序的开发过程,提高代码质......
  • 4.7 C++ Boost 多线程并发库
    Boost库是一个由C/C++语言的开发者创建并更新维护的开源类库,其提供了许多功能强大的程序库和工具,用于开发高质量、可移植、高效的C应用程序。Boost库可以作为标准C库的后备,通常被称为准标准库,是C标准化进程的重要开发引擎之一。使用Boost库可以加速C应用程序的开发过程,提高代码质......
  • 《介绍篇》c、c++和c#
    参考链接:https://www.zhihu.com/question/44483143/answer/1943311640?utm_source=zhihu&utm_medium=social&utm_oi=757371723308879872回答1C++是面向对象版本的CC#跟着两者都没有密切的关系,从语法上来说,是微软抄了一个Java并做了一些改进,来挽救VisualBasic的未尽事业。一开始......
  • C++友元函数和友元类的使用
    1.友元介绍在C++中,友元(friend)是一种机制,允许某个类或函数访问其他类的私有成员。通过友元,可以授予其他类或函数对该类的私有成员的访问权限。友元关系在一些特定的情况下很有用,例如在类之间共享数据或实现特定的功能。友元可以分为两种类型:类友元和函数友元。2.类友元类友元(Friend......
  • C++友元函数和友元类的使用
    1.友元介绍在C++中,友元(friend)是一种机制,允许某个类或函数访问其他类的私有成员。通过友元,可以授予其他类或函数对该类的私有成员的访问权限。友元关系在一些特定的情况下很有用,例如在类之间共享数据或实现特定的功能。友元可以分为两种类型:类友元和函数友元。2.类友元类友元(Friend......