参考资料:STL 在 OI 中的应用

离散化

std::unique

功能:对有序的容器重新排列,将第一次出现的元素从前往后排,其他重复出现的元素依次排在后面
返回值:返回迭代器,迭代器指向的是重复元素的首地址

std::lower_bound

lower_bound()返回一个 iterator 它指向在[first,last)标记的有序序列中可以插入value,而不会破坏容器顺序的第一个位置,而这个位置标记了第一个大于等于value 的值。
ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。

std::upper_bound
upper_bound()返回一个 iterator 它指向在[first,last)标记的有序序列中可以插入value,而不会破坏容器顺序的第一个位置,而这个位置标记了第一个大于value 的值。这两个函数为C++ STL内的函数。
ForwardIter upper_bound(ForwardIter first, ForwardIter last, const _Tp& val)算法返回一个非递减序列[first, last)中第一个大于val的位置。

std::sort(b + 1, b + cnt + 1);
int *end = std::unique(b + 1, b + cnt + 1);
for(int i = 1; i <= n; i++)
a[i] = lower_bound(b + 1, end, a[i]) - b;

最新文章

  1. 记一次WinForm中屏蔽空格键对按钮的作用
  2. DataStructure 排序 源码实现
  3. tree view
  4. Pinyin 输入法安装 opensuse 13 gnome
  5. JDBC读取新插入Oracle数据库Sequence值的5种方法
  6. JavaScript中的Function(函数)对象详解
  7. 在CentOS 7 上搭建LAMP
  8. 分布式文件系统--GFS
  9. ganglia单播配置
  10. 参加persist.sys物业写权限的方法
  11. 操作系统内核Hack:(三)引导程序制作
  12. WebUtils【MD5加密(基于MessageDigest)】
  13. Dubbo 泛化调用的参数解析问题及一个强大的参数解析工具 PojoUtils
  14. 关于为什么会涉足easyui
  15. .NET Core Community 第二个千星项目诞生:Util
  16. CodeMirror 在线代码编辑器
  17. Saiku调用WS接口(十四)
  18. 理解jQuery中$.get、$.post、$.getJSON和$.ajax的用法
  19. 【转载】sql注入之入门
  20. input type=file 选择图片并且实现预览效果的实例

热门文章

  1. 高并发连接导致打开文件过多:java.io.IOException: Too many open files 解决方法
  2. SSM-动态SQL
  3. SpringBoot自动配置注解原理解析
  4. 操作Linux系统环境变量的几种方法
  5. centos每天自动备份mysql数据库
  6. MVC基础篇—控制器与视图数据的传递
  7. angularjs通过ng-change和watch两种方式实现对表单输入改变的监控
  8. elasticsearch6.7 01.入门指南(3)
  9. 设计模式-享元模式(FlyWeight)
  10. Git实战手册(三): stash解惑与妙用