首页 > 编程语言 >c++ 常用的 STL

c++ 常用的 STL

时间:2023-08-18 21:35:09浏览次数:52  
标签:返回 常用 STL 元素 bound c++ back pop push

c++ 中常用的 STL

vector

//vector 变长数组 倍增的思想(倍增:系统为每一个程序分配空间的时候,所需要的时间和空间大小无关,与请求次数相关)尽量减少请求的次数

/*
返回元素的个数
size()

判断是否为空
empty()


清空
clear()

front() 返回第一个数  back()  返回最后一个数

push_back()/pop_back()

begin() / end()

支持比较运算
*/

pair<类型, 类型>

/*
pair<int ,int> 可以存储一个二元值,前后两个值 的类型可以使任意的

first  是第一个元素   second  是第二个元素
支持比较运算,以first为第一关键字, second为第二关键字
*/

string

/*
string 字符串

substr(m, n)  下标从 m 开始 长度为 n 的子串

s_str()

size()

empty()

clear()
*/

queue priority_queue

/*
queue  队列

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


priority_queue  优先队列
push()  插入一个元素
top()  返回堆顶元素
pop()  弹出堆顶元素
*/

stack

/*
stack  栈

size()
push()  向栈顶插入一个元素
top()  返回栈顶元素
pop()  弹出栈顶元素
*/

deque

/*
deque  双端队列  队头队尾都可以插入删除

size()
clear()
front()
back()
push_back()/pop_back()
push_front()/pop_front()
begin() / end()
*/

set map multiset multimap

/*
公有地
size()
empty()
begin()/end()   
-- ++   前驱后继


set/multiset

find()  查找一个数
insert()  插入一个数
count()  返回某一个数的个数
erase()  
1. 输入一个数x  删除所有的 x   时间复杂度 O(k+logn)
2. 输入一个迭代器 , 删除这个迭代器

lower_bound()/upper_bound()
lower_bound()  返回大于等于x的最小的迭代器
upper_bound()  返回大于x最小的迭代器


map  multimap

insert()  插入的数是一个pair
erase()  输入的参数时pair 或者迭代器都可以
find()

[]  可以通过下标取到 时间复杂度 O(logn)
lower_bound/upper_bound

unordered_set   unordered_map   unordered_mulyiset  unordered_multimap
哈希表实现,和上面类似, 增删改查的时间复杂度 O(1)
不支持 lower_bound()  /  upper_bound()
 */

bitset

/*
bitset  压位

bitset<10000> s;

~  &  |  ^

==   !=
[]

count()  返回多少个1  any() 判断是否至少一个1
none()  判断是否为 0

set()  把所有位置置成1
set(k,v)  把第k位改成v
reset()  把所有位置变成0
*/

标签:返回,常用,STL,元素,bound,c++,back,pop,push
From: https://www.cnblogs.com/ice-big/p/17641649.html

相关文章

  • Learn Git in 30 days——第 04 天:常用的 Git 版本控制指令
    写的非常好的一个Git系列文章,强烈推荐原文链接:https://github.com/doggy8088/Learn-Git-in-30-days/tree/master/zh-cn本篇文章将带大家学会几个最重要也最基本的版控工作,其中将包含基本的文件操作如新增、删除、重新命名文件,提交变更(建立新版本)、查询历史记录等工作。准......
  • [AT_ABC106_C]题解(C++)
    PartIPreface原题目\(\text{(Luogu)}\)原题目\(\text{(AtCoder)}\)PartIISketch给定一个字符串\(s\)以及一个整数\(k\)。该字符串为纯数字串。其中的数字\(x\)会在\(k\)天后变为\(x^{k-1}\)个\(x\)。求出\(10^{15}\)天后,串\(s\)的第\(k\)位是什么......
  • [AT_ABC106_D]题解(C++)
    PartIPreface原题目\(\text{(Luogu)}\)原题目\(\text{(AtCoder)}\)PartIISketch给定正整数\(n,m,q\)。接下来给定\(m\)组\(x_i,y_i\),表示一列列车的起始站和终点站。在接下来给定\(q\)组\(l_i,r_i\)。对于每组询问,回答有多少\(x_i\geql_i\operatorna......
  • [AT_ABC106_B]题解(C++)
    PartIPreface原题目\(\text{(Luogu)}\)原题目\(\text{(AtCoder)}\)PartIISketch给定一个正整数\(N\)。求出\(1\simN\)所有因数个数为\(8\)的数的个数。PartIIIAnalysis先输入\(N\)。遍历\(1\simN\)的每个数,记录每个数的因数个数。若因数个数等于\(8\)......
  • [AT_ABC106_A]题解(C++)
    PartIPreface原题目$\text{(Luogu)}$原题目$\text{(AtCoder)}$PartIISketch给定整数$a,b$,输出$(a-1)\times(b-1)$。$2\leqa,b\leq100$。PartIIIAnalysis运用小学知识,进行平移,把几块地拼接在一起。不难看出长为$a-1$,宽为$b-1$,面积为$(a-1)\tim......
  • 第十一章 常用类的概述和使用
    11.1常用的包11.1.1包的名称和功能java.lang包-该包是Java语言的核心包,并且该包中的所有内容由Java虚拟机自动导入。如:System类、String类、...java.util包-该包是Java语言的工具包,里面提供了大量工具类以及集合类等。如:Scanner类、Random类、List集合、...java......
  • c++ 占位符和序列化
    1#include<nlohmann/json.hpp>2#include<iostream>3#include<iomanip>45usingjson=nlohmann::json;67intmain()8{9std::cout<<std::setw(4)<<json::meta()<<std::endl;10}https://json.n......
  • ansible入门指南 - 常用的Ad-Hoc指令
    常用的Ad-Hoc指令ansible命令的基本语法为ansible-mmodule-aparams-iinventory.yaml-f5-uusernameall-m指定运行的模块,缺省值为ansible.builtin.command,即在服务器上直接运行命令-a指定模块的参数-i指定inventory文件-f指定同时运行的数量,缺省值为......
  • ansible入门指南 - ansible的常用命令
    ansible的常用命令运行ansible命令的时候会使用ansible.cfg配置文件配置文件优先级为ANSIBLE_CONFIG指定的文件>~/.ansible.cfg>/etc/ansible/ansible.cfgansibleansible命令可以用来运行ad-hoc指令ansible-config配置文件相关的功能,可以运行以下命令生成一个默......
  • C++快速入门 第四十二讲:链接和作用域
    与作用域有关的另一个概念是链接,当同时编译多个文件时,每个源文件被称为一个翻译单元,在某一个翻译单元里定义的东西在另一个翻译单元里使用正是链接发挥作用的地方。存储类(storageclass):每个变量都有一个存储类,它决定着程序将把变量的值储存在计算机的什么地方、如何存储、以及变......