zoukankan      html  css  js  c++  java
  • 用数组模拟STL中的srack(栈)和queue(队列)

    我们在理解stack和queue的基础上可以用数组来代替这两个容器,因为STL中的stack和queue有可能会导致程序运行起来非常的慢,爆TLE,所以我们使用数组来模拟他们,不仅可以更快,还可以让代码更加简洁

    1.数组模拟stack

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <string.h>
    #include <math.h>
    #include <algorithm>
    #include <stack>
    #include <queue>
    #include <vector>
    #include <map>
    #include <set>
    #define ll long long
    const int N=1e6+10;
    using namespace std;
    typedef pair<int,int>PII;
    int stk[N],tt=0;
    
    //插入
    stk[++tt]=x;
    
    //弹出
    tt--;
    
    //判断栈是否为空
    if(tt>0)  not empty;
    else  empty;
    
    //栈顶
    stk[tt];
    
    int main(){
     ios::sync_with_stdio(false);
      return 0;
    }

    2.数组模拟queue

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <string.h>
    #include <math.h>
    #include <algorithm>
    #include <stack>
    #include <queue>
    #include <vector>
    #include <map>
    #include <set>
    #define ll long long
    const int N=1e6+10;
    using namespace std;
    typedef pair<int,int>PII;
    
    //在队尾插入元素,在队头弹出元素
    int q[N],hh,tt=-1;
    
    //插入
    q[++tt]=x;
    
    //弹出 
    hh++;
    
    //判度队列是否为空
    if(hh<=tt)  not emty;
    else    empty;
    
    //取出队头元素
    q[hh];
    
    int main(){
     ios::sync_with_stdio(false);
      return 0;
    }
  • 相关阅读:
    poj 1080 dp
    Codeforces Round #280 (Div. 2)
    Codeforces Round #279 (Div. 2)f
    Codeforces Round #278 (Div. 1)
    Codeforces Round #276 (Div. 1)
    搜索
    debug 心得
    ZOJ 1633
    DRF 一对多序列化与反序列化
    HTTP协议
  • 原文地址:https://www.cnblogs.com/lr599909928/p/12322064.html
Copyright © 2011-2022 走看看