首页 > 其他分享 >STL专题

STL专题

时间:2023-08-31 23:55:05浏览次数:42  
标签:返回 专题 STL 元素 bound back empty size

STL专题

1.

vector, 变长数组,倍增的思想
    size()  返回元素个数
    empty()  返回是否为空
    clear()  清空
    front()/back()
    push_back()/pop_back()
    begin()/end()
    []
    支持比较运算,按字典序

pair<int, int>
    first, 第一个元素
    second, 第二个元素
    支持比较运算,以first为第一关键字,以second为第二关键字(字典序)

string,字符串
    size()/length()  返回字符串长度
    empty()
    clear()
    substr(起始下标,(子串长度))  返回子串
    c_str()  返回字符串所在字符数组的起始地址

queue, 队列
    size()
    empty()
    push()  向队尾插入一个元素
    front()  返回队头元素
    back()  返回队尾元素
    pop()  弹出队头元素

priority_queue, 优先队列,默认是大根堆
    size()
    empty()
    push()  插入一个元素
    top()  返回堆顶元素
    pop()  弹出堆顶元素
    定义成小根堆的方式:priority_queue<int, vector<int>, greater<int>> q;

stack, 栈
    size()
    empty()
    push()  向栈顶插入一个元素
    top()  返回栈顶元素
    pop()  弹出栈顶元素

deque, 双端队列
    size()
    empty()
    clear()
    front()/back()
    push_back()/pop_back()
    push_front()/pop_front()
    begin()/end()
    []

set, map, multiset, multimap, 基于平衡二叉树(红黑树),动态维护有序序列
    size()
    empty()
    clear()
    begin()/end()
    ++, -- 返回前驱和后继,时间复杂度 O(logn)

    set/multiset
        insert()  插入一个数
        find()  查找一个数
        count()  返回某一个数的个数
        erase()
            (1) 输入是一个数x,删除所有x   O(k + logn)
            (2) 输入一个迭代器,删除这个迭代器
        lower_bound()/upper_bound()
            lower_bound(x)  返回大于等于x的最小的数的迭代器
            upper_bound(x)  返回大于x的最小的数的迭代器
    map/multimap
        insert()  插入的数是一个pair
        erase()  输入的参数是pair或者迭代器
        find()
        []  注意multimap不支持此操作。 时间复杂度是 O(logn)
        lower_bound()/upper_bound()

unordered_set, unordered_map, unordered_multiset, unordered_multimap, 哈希表
    和上面类似,增删改查的时间复杂度是 O(1)
    不支持 lower_bound()/upper_bound(), 迭代器的++,--

bitset, 圧位
    bitset<10000> s;
    ~, &, |, ^
    >>, <<
    ==, !=
    []

    count()  返回有多少个1

    any()  判断是否至少有一个1
    none()  判断是否全为0

    set()  把所有位置成1
    set(k, v)  将第k位变成v
    reset()  把所有位变成0
    flip()  等价于~
    flip(k) 把第k位取反
    作者:gao79138
    链接:https://www.acwing.com/
    来源:本博客中的截图、代码模板及题目地址均来自于Acwing。其余内容均为作者原创。
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:返回,专题,STL,元素,bound,back,empty,size
From: https://www.cnblogs.com/gao79135/p/17590938.html

相关文章

  • 【专题】抖音电商平台母婴行业营销白皮书报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33528原文出处:拓端数据部落公众号报告合集显示,由于新生儿出生率下降,母婴行业进入了存量时代。在这一背景下,抖音电商成为越来越多消费者的选择,尤其是24-40岁的三四线城市女性。这一消费群体更倾向于在线上购买,给母婴行业的线上销售带来了巨大的机遇......
  • floyd 专题 - 2
    8.29模拟赛小记。A.时间复杂度,洛谷原题指路:P1522[USACO2.4]牛的旅行CowTours首先为啥从100pts->88->77。因为打完第一遍之后感觉思路不太对,少考虑了一个部分,然后加了一个并查集。挂分是因为连通块合并写挂了(基础还能错是我有罪)。所以属实没想到第一遍能AC,那份码在洛......
  • STL- 常用算法
    5STL-常用算法概述:算法主要是由头文件<algorithm><functional><numeric>组成。<algorithm>是所有STL头文件中最大的一个,范围涉及到比较、交换、查找、遍历操作、复制、修改等等<numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数<functional>定......
  • STL- 常用容器
    3STL-常用容器3.1string容器3.1.1string基本概念本质:string是C++风格的字符串,而string本质上是一个类string和char*区别:char*是一个指针string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。特点:string类内部封装了很多成员方法例如:查找fi......
  • STL- 函数对象
    4STL-函数对象4.1函数对象4.1.1函数对象概念概念:重载函数调用操作符的类,其对象常称为函数对象函数对象使用重载的()时,行为类似函数调用,也叫仿函数本质:函数对象(仿函数)是一个类,不是一个函数4.1.2函数对象使用特点:函数对象在使用时,可以像普通函数那样调用,可以......
  • STL初识
    2STL初识2.1STL的诞生长久以来,软件界一直希望建立一种可重复利用的东西C++的面向对象和泛型编程思想,目的就是复用性的提升大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作为了建立数据结构和算法的一套标准,诞生了STL2.2STL基本概念STL(......
  • HCIE-广域承载解决方案专题01-SR
    HCIE-广域承载解决方案专题01-SR基本概念1SR(SegmentRouting)概述1.1MPLSLDP与RSVP-TE存在的问题MPLSLDPLDP本身并无算路能力,需依赖IGP进行路径计算控制面需要IGP及LDP,设备之间需要发送大量的消息来维持邻居关系及路径状态,浪费了链路带宽及设备资源若LDP与IGP切换过......
  • Java 15 JSTL实现登录退出
     jstl.jsp<%@pagecontentType="text/html;charset=UTF-8"language="java"%><%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%><%--if--%><%@taglibprefix="fmt"uri=&......
  • floyd 专题
    更进一步的感悟floyd内涵!了解&理解floyd:floyd算法,常用于求多源最短路,O(n^3)。本质是动态规划。两个点,通过找中转点更新答案。三个for。其中第一个for枚举k表示除了起点终点外只允许前走1~k个点的答案。另外两个for枚举起点终点。例题1:P1119灾后重建:加强......
  • 【C++STL基础入门】vector运算和遍历、排序、乱序算法
    @TOC前言C++标准库提供了丰富的容器和算法,其中vector是最常用的容器之一。它以动态数组的形式存储元素,并提供了许多方便的运算符和算法来操作和处理数据。本文将介绍vector的基本运算、遍历方法、排序算法以及乱序算法。通过学习这些内容,您将能够更加灵活、高效地使用vector容器。......