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();

  • 相关阅读:
    bootstrap模态框视频,图片,页面
    curl 的用法指南
    springboot tomcat设置https,springboot配置ssl
    expect脚本
    java8新特性CompletableFuture
    Windows自动备份Oracle数据库
    SQL语句对单个的MySQL存储过程导出
    Oracle表空间的使用
    Oracle数据库基本操作
    Linux 查询 OS、CPU、内存、硬盘信息
  • 原文地址:https://www.cnblogs.com/huixinxinw/p/12242369.html
Copyright © 2011-2022 走看看