前言

其实我很早开始就用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库的更多相关文章

  1. [Golang学习笔记] 03 库源码文件

    库源码文件:不能被直接运行的源码文件,它仅用于存放程序实体,这些程序实体可以被其他代码使用. 代码包声明的基本规则: 1. 同目录下的源码文件的代码包声明语句要一致.也就是说,它们要同属于一个代码包( ...

  2. [Android学习笔记]jackson库的使用

    Jackson库一般用于序列化和反序列化操作,通常会涉及到的操作是: 1. Java Object -> Json String 2. Java Object -> Xml String ...

  3. [Python学习笔记] turtle库的基本使用

    turtle库常用函数 引入turtle模块 import turtle turtle的绘图窗体 #setup()设置窗口大小及位置#setup()可省略turtle.setup(width,heig ...

  4. 爬虫学习笔记-urllib库

    urllib库是python中一个最基本的网络请求库.可以模拟浏览器的行为,向指定的服务器发送一个请求,并可以保存服务器返回的数据. urlopen函数:在python3的urllib库中,所有和网络 ...

  5. 【托业】【新托业TOEIC新题型真题】学习笔记9-题库七+八--P4-5

    109.intend 意为“打算,意欲”,含有将来的含义,故不用将来时态 110.must do sth 必须做某事 111.recession 经济衰退,不景气 rebound 反弹:反应 recr ...

  6. Docker技术入门与实战 第二版-学习笔记-6-仓库

    仓库(Repository)是集中存放镜像的地方 一个容易混淆的概念是注册服务器(Registry). 实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像. ...

  7. python学习笔记——urllib库中的parse

    1 urllib.parse urllib 库中包含有如下内容 Package contents error parse request response robotparser 其中urllib.p ...

  8. VC学习笔记----STL库

      STL = Standard Template Library,标准模板库,惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Lee和David R Muss ...

  9. go学习笔记-标准库

    标准库 名称 摘要 archive tar tar包实现了tar格式压缩文件的存取. zip zip包提供了zip档案文件的读写服务. bufio bufio 包实现了带缓存的I/O操作. built ...

随机推荐

  1. SQL-W3School-函数:SQL LCASE() 函数

    ylbtech-SQL-W3School-函数:SQL LCASE() 函数 1.返回顶部 1. LCASE() 函数 LCASE 函数把字段的值转换为小写. SQL LCASE() 语法 SELEC ...

  2. sql中union,union all没有兼顾到的内容

    今日遇到一个问题,两张表联合取交集去重,但是需要把某一字段相同的也给去掉 union all : 联合,没有取交集 union :联合取交集(仅针对所有字段相同的去重) 解决方案:将联合的数据作为一个 ...

  3. [webpack]深入学习webpack核心模块tapable

    一.手动实现同步钩子函数 1.SyncHook class SyncHook { // 钩子是同步的 constructor(args){ this.tasks = []; } tap(name,ta ...

  4. centos Dockerfile

     FROM centos:latest   LABEL maintainer "wojiushixiaobai"   WORKDIR /opt       ENV GUAC_VER ...

  5. osg::Camera example

    #ifdef _WIN32 #include <Windows.h> #endif // _WIN32 #include<iostream> #include <osgV ...

  6. NGUI 9宫格输入的一个巨坑

    UILabel 中的maxlines = 0,输入没有问题.如果maxlines=1,输入出错

  7. 给引入页面的js和css资源加上版本号,防止浏览器缓存资源

    最近因为在做前端开发的相关工作,每次发布新版本以后,不到5分钟,测试童鞋一个接一个的抱怨说BUG根本就没有修改,这个时候你说的最多的话就是“清缓存!!清页面缓存!!你没有清缓存!!你清理了页面缓存就对 ...

  8. es6 装饰器decorator的使用 +webpack4.0配置

    decorator 装饰器 许多面向对象都有decorator(装饰器)函数,比如python中也可以用decorator函数来强化代码,decorator相当于一个高阶函数,接收一个函数,返回一个被 ...

  9. Spring 使用日志

    1. spring boot项目默认使用什么技术处理日志? 实例代码 log.debug("===============================用户信息:", user) ...

  10. HTTP网页请求状态码

    我们平时在打开一些网页的时候,会遇到打不开的情况,页面提示404错误,这个404就是http状态码.如果我们可以正常打开网页,这时也会有http状态码的,这个状态码就是200,只不过这时我们是无法通过 ...