• C++标准库中栈和队列的一些基本操作


    栈:

      <1>使用栈,要包含头文件:#include <stack>

      <2>定义栈,stack<Type> s; 其中Type为数据类型,可以是基本数据类型(如char, int, float等),也可以是用户自定义的类型(如用户自定义的结构体类型或者class类型);

      <3>栈的几种基本操作: 

    1 stack<Type> s;   //定义一个类型为Type,名称为s的栈 
    2 s. push(item);   //将元素item压入栈中 
    3 s.pop();         //删除栈顶元素,但并不返回该元素,该函数的返回值为void 
    4 s.top();         //访问栈顶元素并返回该元素 
    5 s.size();        //返回栈中元素的个数 
    6 s.empty();       //判断栈是否为空,如果为空则返回true,否则返回false

    队列:

      <1>使用队列,要包含头文件:#include <queue>

      <2>定义队列,queue<Type> q; 其中Type为数据类型,可以是基本数据类型(如char, int, float等),也可以是用户自定义的类型(如用户自定义的结构体类型或者class类型);

      <3>队列的几种基本操作: 

    1 queue<Type> q;    //定义一个类型为Type,名称为q的队列 
    2 q.push(item);     //将item压入队列中
    3 q.pop();          //删除队首元素,但不返回该元素,该函数的返回值为void  
    4 q.front();        //访问队首元素并返回该元素 
    5 q.back();         //访问队尾元素并返回该元素 
    6 q.size();         //返回队列中元素的个数 
    7 q.empty();        //检查队列是否为空,如果为空则返回true,否则返回false

    双端队列: 

    双端队列的声明:

    1 #include<deque>  //头文件
    2 deque<type> deq;  //声明一个元素类型为type的双端队列deq
    3 deque<type> deq(size);  //声明一个类型为type、含有size个默认值初始化元素的的双端队列deq
    4 deque<type> deq(size, value);  //声明一个元素类型为type、含有size个value元素的双端队列deq
    5 deque<type> deq(mydeque);  //deq是mydeque的一个副本
    6 deque<type> deq(first, last);  //使用迭代器first、last范围内的元素初始化deq

    双端队列的成员函数:

    1 deq[i];                //用来访问双向队列中单个的元素。
    2 deq.front();           //返回第一个元素的引用。
    3 deq.back();            //返回最后一个元素的引用。
    4 deq.push_front(x);     //把元素x插入到双向队列的头部。
    5 deq.pop_front();       //弹出双向队列的第一个元素。
    6 deq.push_back(x);      //把元素x插入到双向队列的尾部。
    7 deq.pop_back();        //弹出双向队列的最后一个元素。
  • 相关阅读:
    一种无法被Dump的jar包加密保护解决方案
    基于设备指纹零感验证系统
    IOS防作弊产品技术原理分析
    某移动端防作弊产品技术原理浅析与个人方案构想
    web安全防御之RASP技术
    Linux漏洞分析入门笔记-Off-By-One(栈)
    smb中继学习
    Dedecms sp2 5.7 后台getshell审计
    phpmyadmin后台代码执行分析复现
    静态恶意代码逃逸-学习一
  • 原文地址:https://www.cnblogs.com/OoycyoO/p/9215817.html
Copyright © 2020-2023  润新知