zoukankan      html  css  js  c++  java
  • 部分STL用法简述

      今天发现太久没写代码我有些STL用法都生疏了,顺便今天借此总结一下。(坑很大,留着以后慢慢填)

      1.priority queue

      我感觉这个还是很常用的,复杂度为O(log n)的一种维护最值,可以进行插入和弹出操作的一种数据结构。

      具体的用法如下:

      

    1 #include<queue> // 开库
    2 priority_queue<int(类型)>a(队列名称)
    3 a.push(t)//把t插入a
    4 a.pop()//把a的队首排出
    5 a.top()//查询a的队首
    6 a.empty()//bool 类型判断a是否为空

      另外很多题中是需要重定义运算符的具体写法如下

    1 struct node
    2 {
    3     int p;
    4     friend bool operator < (node x, node y)
    5     {
    6         return x.p < y.p;
    7     }
    8 }

      2.vector

       是一种可以动态改变大小的数组。

     1 #include<vector>//开库
     2 vector<int>a//开vector
     3 a.size()//vector大小
     4 a.empty()//判断是否为空
     5 a.push_back(t)//末尾加t
     6 a.pop_back()//末尾删除元素
     7 a.begin()//开始指针
     8 a.end()//末尾指针
     9 a.front()//第一个元素
    10 a.back()//最后一个元素

      对于vector的遍历,可以采用如下方法

      

    for(int i=0; i<a.size(); i++)

      3.set

      我一直没怎么写过set,所以在此也自学一遍。

      其实和其他的STL操作很相似

     1 #include<set>//开库
     2 set<int >a
     3 a.begin()//返回set容器的第一个元素
     4 a.end()//返回set容器的最后一个元素
     5 a.clear()//删除set容器中的所有的元素
     6 a.empty()//判断set容器是否为空
     7 a.max_size()//返回set容器可能包含的元素最大个数
     8 a.size()//返回当前set容器中的元素个数
     9 a.count(t)//判断t在a中出现几次
    10 a.erase(t)//删除键值为t的数
    11 a.insert(t)//将t插入a

      剩下的干脆以后再说好啦QAQ

  • 相关阅读:
    10 Mysql之数据备份与还原
    09 Mysql之创建用户和授权
    08 Mysql之Navicat工具以及Pymysql模块
    架构师成长之路之限流漫谈
    为什么程序员应该有一台 Mac 个人电脑
    Java中的锁原理、锁优化、CAS、AQS详解!
    SSM 实现支付宝支付功能(图文详解+完整代码)
    IDEA 调试图文教程,让 bug 无处藏身!
    记住:永远不要在 MySQL 中使用 UTF-8
    我爸的电脑中了勒索病毒……
  • 原文地址:https://www.cnblogs.com/qmcp/p/9410415.html
Copyright © 2011-2022 走看看