zoukankan      html  css  js  c++  java
  • 【总结】stl(以后还会慢慢补上

    总结stl的用法(啊现在还很少以后会慢慢补上的w

    vector

    vector是一个动态数组,在定义后他会预先开一个比较小的空间,对于push_back()操作如果数组大小不够了,会继续开一些空间。

    访问位置时间复杂度O(1),加入元素时间复杂度近似O(1)

    缺点:常数会比较大

    常用操作

    定义方式:vector a;

    在末尾压入容器:a.push_back(x);

    在末尾弹出容器:a.pop_back();

    清空容器:a.clear();

    查询元素个数:a.size();

    首指针:a.begin();

    插入元素在sit位置:a.insert(sit,x);其中sit是vector的迭代器。

    调用的时候直接通过数组下标就能访问

    queue

    是一种先进先出的线性表,可以直接用stl中的queue

    常用操作:

    ¢定义:queue a;

    ¢插入队尾:a.push(x);

    ¢删除队首:a.pop();

    ¢查询队尾:a.back();

    ¢查询队首:a.front();

    ¢查询长度:a.size();

    ¢清空只能慢慢pop。

    我们可以选用一个队首指针和队尾指针来手动模拟一个队列。

    stack

    同queue类似,但是先进后出的线性表

    常用操作

    定义:stack a;

    查询栈顶:a.top();

    压入栈顶:a.push(x);

    将元素从栈顶弹出:a.pop();

    查询a中的元素个数:a.size();

    清空只能慢慢pop。

    思考:
    如何用两个栈A,B模拟一个队列,并且时间复杂度尽可能好

    先压入A,再将A中元素依次弹出,压入B

    map

    映射,把它看做一个无限大的数组。

    定义方式:map<int ,int> a;

    使用方式:a[x]++,cout<<a[y]等。

    利用迭代器查询map里的所有二元组:

    for (map<int,int>::iterator sit=a.begin(); sit!=a.end(); sit++) cout<first<<‘ ‘<second<<endl;

    清空:a.clear();

  • 相关阅读:
    阿里云nginx创建多站点
    linux 卸载php mysql apache
    centos php环境搭建
    jquery simple modal
    nodejs 安装express
    nodejs fs.open
    nodejs supervisor
    nodejs 运行
    nodejs shell
    PHP array_pad()
  • 原文地址:https://www.cnblogs.com/huixinxinw/p/12242369.html
Copyright © 2011-2022 走看看