算法拾遗[4]——STL用法
主要bb一下优先队列和字符串吧. 哦还有 bitset.
优先队列
- 定义很容易:
priority_queue<int> pq; - 内部是一个堆.
基本操作
pq.top()取堆顶元素; (没有front()方法!)pq.push(x)插入;pq.pop()删除(删除堆顶);pq.empty()判断是否为空.
自定义优先级
- 最大堆:
priority_queue<int> pq; - 最小堆:
priority_queue< int, vector<int>, greater<int> > pq; - 事实上还有自定义优先级
cmp的方法(优先级最大的最先出队):
1
2
3
4
5
6
7
8struct
{
bool operator() (const int a, const int b) const
{
return a > b;
}
};
priority_queue<int, vector<int>, cmp> pq; // 此时也是最小堆大专栏 算法拾遗[4]——STL用法ody>
例题
- 百练 4078: http://bailian.openjudge.cn/practice/4078/
字符串
定义更容易: string s;
基本操作
s.size()串长度(下标从0 开始);s.substr(a, n)构造子串, a为第一个字符的下标, n为子串字符长度;s'find(it1, it2, x)在指针it1和it2中间查找字符x; (s.find(x)为整个s中查找x)s.erase(a)删除元素, a貌似是指针, 可以和find合用去除指定字符, 如s.erase(std::find(s.begin(), s.end(), ' '));去掉所有空格;s.empty()判断是否为空;- 支持
push_back和pop_back; - 支持
+,=和==运算.
遍历操作
- 可以用
auto it = s.begin(); it != s.end(); it++遍历; - 但我一般都用
int i = 0; i < s.size(); i++遍历.
和数字的转换
字符串转数字
stoi,stol,stoll: 字符串转整数;stof,stod,stold: 字符串转浮点数;
数字转字符串
to_string直接转成std::string.
位向量
定义: bitset<length> b(value);
基本操作
- 支持位运算
&,^,<<,>>等; to_string()转化为字符串;to_ulong(),to_ullong()转化为无符号整数;flip(i)第i位取反, 下标从0开始.flip()全部按位取反.
算法拾遗[4]——STL用法的更多相关文章
- STL函数 lower_bound 和 upper_bound 在算法竞赛中的用法
以前比较排斥这两个函数,遇到需要二分的情景都是手写 \(while(left<=right)\). 这次决定洗心革面记录一下这两个函数的在算法竞赛中的用法,毕竟一般不会导致TLE. 其实百度百科 ...
- 数据结构(DataStructure)与算法(Algorithm)、STL应用
catalogue . 引论 . 数据结构的概念 . 逻辑结构实例 2.1 堆栈 2.2 队列 2.3 树形结构 二叉树 . 物理结构实例 3.1 链表 单向线性链表 单向循环链表 双向线性链表 双向 ...
- STL用法整理
百度百科 STL是Standard Template Library的简称,中文名标准模板库,惠普实验室开发的一系列软件的统称.从根本上说,STL是一些“容器”的集合,这些“容器”有list,vect ...
- STL用法大全
1. 概述 泛型编程思想最早缘于A.Stepanov提出的部分算法可独立于数据结构的论断.20世纪90年代初A.Stepanov和Meng Lee根据泛型编程的理论用C++共同编写了STL.但直 ...
- [笔记]一些STL用法
参考资料:STL 在 OI 中的应用 离散化 std::unique 功能:对有序的容器重新排列,将第一次出现的元素从前往后排,其他重复出现的元素依次排在后面 返回值:返回迭代器,迭代器指向的是重复元 ...
- MoreWindows 微软认证专家博客目录(白话算法,C++ STL,windows编程)
为了方便大家查找和学习,现将本人博客中所有博客文章列出目录. (http://blog.csdn.net/morewindows) 一. 白话经典算法 目前有17篇,分为七大排序和经典面试题 ...
- STL&&用法集合
.....STL是c++里很强势很好用的一系列容器(函数)之类的,之前一直不太会用,所以总是暴毙....想着快比赛了,是时候理一下这些东西了. -1.pair 存放两个基本元素的东西 定义方法: pa ...
- STL用法之set
[C++::STL]之set的用法 c++ set求差集,并集,交集
- 基础算法学习以及$STL$的使用
1.优先队列 (1)大根堆(小顶堆) priority_queue<int,vector<int>,greater<int> >q; (2)小根堆(大顶堆) pri ...
随机推荐
- swoole使用异步进程通信
$process = new swoole_process(function($pro){ $pro->exec('//linux中的php命令所在绝对路径', ['//执行文件绝对路径']); ...
- LibraryBuilder——从元器件datasheet到Library
LibraryBuilder是Cadence推出的元件库管理工具,可以从PDF自动创建器件的原理图符号及PCB封装. 软件可以从“吴川斌的博客”下载到. 这里大致记录一下创建元件库的过程,以Beagl ...
- mysql创建视图和存储过程,变量
创建视图 sql>create view 视图名 as select语句; 修改视图并添加别名 sql>create or replace view empvu10 (employee_n ...
- Qt的窗口如何显示在spi屏幕上
问题:我们可以将qt移植到H3上,但是如果要将窗口通过spi屏进行显示应该怎么做呢,和framebuffer又有什么关系? 这里只说一下qt在spi屏上显示的技术原理,具体的实现还需要自己努力. 一. ...
- shell_常规小脚本
shell 1.检查Mysql的健康状态 #!/bin/bashpgrep -x mysqld &> /dev/nullif [ $? -ne 0 ]thenecho “At time: ...
- 通过java语言实现MD5加密
通过java语言实现MD5加密public static String getMd5(String str) { try { MessageDigest md5 = MessageDigest.get ...
- 搭建solr8
这里记录linux上的安装过程 一.下载安装包 https://lucene.apache.org/solr/downloads.html 二.解压安装 这里我放倒了/usr/local/solr目录 ...
- kubectl格式化输出和调试
1.格式化输出 以特定的格式想终端输出详细信息,可以在 kubectl 命令中添加 -o 或者 -output 选项 输出格式 描述 -o=custom-columns=<spec> 使 ...
- 必应翻译:让Windows上的翻译不再是难事
文章译自:Translations Made Easy on Windows 比方说今年夏天你想出国旅行,计划去一趟德国.你的行程很丰富:参观慕尼黑和柏林,乘坐游船沿莱茵河而下,再品尝几串摩泽尔的葡萄 ...
- centos7 部署vue项目(前后端分离、nginx)
一.环境准备 1.centos7系统 2.mysql数据库 3.在centos7虚拟机上安装好nginx 二.部署内容准备 1.后端war包 或者可执行jar 因为我这里是spring boot项目. ...