[学习笔记]pb_ds库
前言
其实我很早开始就用pb_ds库了,用起来确实方便.但最近感觉还是对这个了解颇少,还是来补一下
话说有人会忘记头文件,其实这有个伎俩,找到电脑上的g++文件夹.Ubuntu应该在etc中,Windows的话各省应该都预装了Dev-CPP吧,右键打开文件位置
进入Dev-Cpp\MinGW32\lib\gcc\mingw32\4.8.1\include\c++
然后就发现一大堆头文件还有个叫pb_ds的文件夹,点进去又有大堆头文件,你按照相似方式ext/pb_ds/...加入你的代码就好了
当然也有个万能的#include<bits/extc++.h>不过有些可能不资瓷
哈希表
哈希表再也不用map/unordered_map实现了
调用
#include <ext/pb_ds/hash_policy.hpp>
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
gp_hash_table <int,int>g;
cc_hash_table <int,int>c;
支持[]重载运算符,非常方便
gp_hash_table使用查探法,cc_hash_table使用拉链法
我一直是用gp_hash_table而且确实一般会稍快一点,然而昨天我做到了一道题毒瘤出题人8e5个数基本上是连续的
gp_hash_table就真的GG了,10s还没跑出来,cc_hash_table一下就跑完了
看了这篇文章才知道原因:https://blog.csdn.net/u011080472/article/details/51177412
所以我个人建议使用cc_hash_table
优先队列
这里只讲最常见的配对堆的使用,对其他种类的堆感兴趣的请自行了解
调用
#include <ext/pb_ds/priority_queue.hpp>
using namespace _gnu_pbds;
typedef pair<int,int> pii
typedef priority_queue < pii ,std::less<pii> ,pairing_heap_tag> Heap
这样Heap poi就让poi称为一个配对堆了
非常快
[学习笔记]pb_ds库的更多相关文章
- [Golang学习笔记] 03 库源码文件
库源码文件:不能被直接运行的源码文件,它仅用于存放程序实体,这些程序实体可以被其他代码使用. 代码包声明的基本规则: 1. 同目录下的源码文件的代码包声明语句要一致.也就是说,它们要同属于一个代码包( ...
- [Android学习笔记]jackson库的使用
Jackson库一般用于序列化和反序列化操作,通常会涉及到的操作是: 1. Java Object -> Json String 2. Java Object -> Xml String ...
- [Python学习笔记] turtle库的基本使用
turtle库常用函数 引入turtle模块 import turtle turtle的绘图窗体 #setup()设置窗口大小及位置#setup()可省略turtle.setup(width,heig ...
- 爬虫学习笔记-urllib库
urllib库是python中一个最基本的网络请求库.可以模拟浏览器的行为,向指定的服务器发送一个请求,并可以保存服务器返回的数据. urlopen函数:在python3的urllib库中,所有和网络 ...
- 【托业】【新托业TOEIC新题型真题】学习笔记9-题库七+八--P4-5
109.intend 意为“打算,意欲”,含有将来的含义,故不用将来时态 110.must do sth 必须做某事 111.recession 经济衰退,不景气 rebound 反弹:反应 recr ...
- Docker技术入门与实战 第二版-学习笔记-6-仓库
仓库(Repository)是集中存放镜像的地方 一个容易混淆的概念是注册服务器(Registry). 实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像. ...
- python学习笔记——urllib库中的parse
1 urllib.parse urllib 库中包含有如下内容 Package contents error parse request response robotparser 其中urllib.p ...
- VC学习笔记----STL库
STL = Standard Template Library,标准模板库,惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Lee和David R Muss ...
- go学习笔记-标准库
标准库 名称 摘要 archive tar tar包实现了tar格式压缩文件的存取. zip zip包提供了zip档案文件的读写服务. bufio bufio 包实现了带缓存的I/O操作. built ...
随机推荐
- hystrix流程图收藏
最近在看张开涛的亿级流量的书,学习了一个新的防雪崩的功能hystrix,在学习这个功能的过程中,看了一些网站也温习了一些知识,例如double_check locking功能,还有cache的击穿作为 ...
- js事件函数中(ev)是什么鬼?
首先,从ev所在的位置就可以得知,ev是参数. 在ev中包含了事件触发时的函数, 比如: click事件的ev中包含着e.pageX,e.pageY keydown事件中包含着ev.keyCode等 ...
- mysql占用服务器cpu过高的原因以及解决办法
登陆Mysql: mysql -p<port> -u<user> -p<pwd> mysql> show processlist; show processl ...
- osg::MatrixTransform 模型基本变换
VCNodeMatrix.h #pragma once #include <osgViewer/Viewer> #include <osgViewer/ViewerEventHand ...
- 33Flutter仿京东商城项目 登录 注册相关页面布局
加群452892873 下载对应33课文件,运行方法,建好项目,直接替换lib目录 以下列出的是本课涉及的文件. User.dart import 'package:flutter/material. ...
- SSM基于Token的登录认证
1.什么是token token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识. 当用户第一次登录后,服务器生成一个token并将此token返回给客户端,以后客户端只需带上 ...
- php上传超大文件
1.使用PHP的创始人 Rasmus Lerdorf 写的APC扩展模块来实现(http://pecl.php.net/package/apc) APC实现方法: 安装APC,参照官方文档安装,可以使 ...
- 第一个php文件运行
运行会发现报错,解决参考:写的很详细 http://blog.csdn.net/meegomeego/article/details/36020553
- json转字符串 —— jsonObj.toJSONString()与JSON.stringify(jsonObj)json to string
json 转变成 string方法介绍: var people = { "programmers": [{ "firstName": "Brett&q ...
- 【Leetcode_easy】819. Most Common Word
problem 819. Most Common Word solution: class Solution { public: string mostCommonWord(string paragr ...