对于这几个函数的一些实例以便于理解:

#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;int main() {// vector的插入:如果迭代器指向了某一元素,那么插入后将该元素挤到了后面,即插入到该元素之前 vector<int>v;v.push_back(2), v.push_back(3), v.push_back(4);vector<int>::iterator it;it = v.begin();it++;v.insert(it, 100);for (int i = 0; i < v.size(); ++i) printf("%d ", v[i]);puts("");/*Output:2 100 3 4*/ // lower_bound和upper_bound:今天看到这样的一个描述,[lower_bound, upper_bound)之间的元素与查找的元素相等// 如果没有该元素,那么lower_bound = upper_bound,在lower_bound位置插入则插入到该元素区间的最前面,在// upper_bound位置插入则插入到该元素区间的最后面,如果没有该元素,那么两个位置就想等了 // 对于upper_bound,如果一个元素大于最大的元素和等于最后的元素其返回的结果相同,这是由于区间大小的限制    // 当时上述情况下lower_bound的结果会有所不同,很容易理解,前者相减之后的值为0,后者相减之后的值为1int a[5] = {1, 2, 2, 4, 5};int b[5] = {0, 1, 2, 5, 100};for (int i = 0; i < 5; ++i) {int x = lower_bound(a, a+5, b[i]) - a;int y = upper_bound(a, a+5, b[i]) - a;printf("low = %d, up = %d\n", x, y);}puts("");/*  Output:low = 0, up = 0low = 0, up = 1low = 1, up = 3low = 4, up = 5low = 5, up = 5*/// equal_range:在一个排序的数组中返回与所查询值相等的区间,注意返回值是pair<iterator, iterator> // 其中前一个值为lower_bound的值,后一个数为upper_bound的值pair<int *, int *>range;for (int i = 0; i < 5; ++i) {range = equal_range(a, a+5, b[i]);printf("low = %d, up = %d\n", range.first-a, range.second-a);}/*Output:low = 0, up = 0low = 0, up = 1low = 1, up = 3low = 4, up = 5low = 5, up = 5*/return 0;
} 

vector的插入、lower_bound、upper_bound、equal_range实例相关推荐

  1. STL源码剖析 lower_bound | upper_bound | binary_search

    lower_bound 二分查找的一种版本,试图在已经排序的区间内查找元素value,如果区间内存在和value数值相等的元素,便返回一个迭代器,指向其中的第一个元素. 如果没有数值相等的元素,会返回 ...

  2. C++ lower_bound() upper_bound() 函数用法详解(深入了解,一文学会)

    find().find_if().search() 等.值得一提的是,这些函数的底层实现都采用的是顺序查找(逐个遍历)的方式,在某些场景中的执行效率并不高.例如,当指定区域内的数据处于有序状态时,如果 ...

  3. pair用法 lower_bound upper_bound

    int a,b;pair<int,int>p;cin>>a>>b;p=make_pair(a,b);cout<<p.first<<" ...

  4. lower_bound()/upper_bound()函数(C++)

    文章目录 1.lower_bound()/upper_bound()函数简单介绍 2.lower_bound()/upper_bound()函数分析 3.lower_bound()/upper_bou ...

  5. lower_bound, upper_bound, greater, less 用法

    一般lower_bound(), upper_bound() 基本用法 定义: algorithm头文件的函数 功能: 二分查找,查询一个数组(vector也可以使用)中大于给定数的位置 条件: 因为 ...

  6. Python 操作Word文档插入图片和表格实例演示

    Python 操作Word文档插入图片和表格实例演示 效果图 实现过程 ① python-docx 库安装 ② word 文档插入图片演示 ③ word 文档插入表格演示 [ 文章推荐 ] Pytho ...

  7. c++ 二分查找的函数 lower_bound upper_bound binary_search

    简介 C++ STL 中二分查找函数主要有这三种: lower_bound() upper_bound() binary_search() 这三个函数都运用于有序区间. 用法 1. lower_bou ...

  8. sicily vector有序插入

    实现了简单的vector有序插入,这个题目值得注意的点是1.当vector为空时,需要判断再排除 2.迭代器的使用是此段代码的特点 int insertVector(vector<int> ...

  9. python数据写入表格生成图片_python在word文档里插入图片和表格实例代码演示

    # -*- coding: UTF8 -*- from docx import Document from docx.shared import Pt doc = Document() # 文件存储路 ...

最新文章

  1. 11个顶级 JavaScript 日历插件
  2. react(85)--error:Error creating bean with name ‘onlineStudyController‘:
  3. C++远征之封装篇——类和封装、实例化和对象成员访问
  4. ecshop活动页_ECSHOP团购活动,ECSHOP团购列表
  5. android --多线程下载
  6. iOS中的UISearchBar
  7. 【随感】我觉得,世界上最美好的乐器是钢琴和架子鼓
  8. vivado快速下载及解压安装教程
  9. visual studio 2017 installer 安装包制作过程出现的问题---无法注册模块 HRESULT -2147024769 请与您的技术支持人员联系...
  10. linux 网卡爽ip,linux服务器双网卡爽IP实现双线
  11. 【C语言刷题】汉诺塔问题
  12. (译)使用Go语言从零编写PoS区块链
  13. 【MATLAB】进阶绘图 ( Pie Chart 饼图 | pie 函数 | 三维饼图 | pie3 函数 )
  14. Walkthrough: Word 2007 XML 格式
  15. java 统计汉字个数_Java简单统计字符串中汉字,英文字母及数字数量的方法
  16. Veeam Availability Suite 9.5安装和配置
  17. 激光SLAM:Livox激光雷达硬件时间同步
  18. 人脸识别门禁有哪些功能呢?
  19. 主生产计划(MPS)及物料需求计划(MRP)
  20. IDF实验室 聪明的小羊

热门文章

  1. php如何查询数据是否存在,PHP判断数据库中的记录是否存在的方法,php数据库_PHP教程...
  2. rust如何进枪战服_天龙八部怀旧服九大门派详细打造攻略——少林篇
  3. k8s 带你一步步 创建用户账号(User Account)
  4. android中XMl文件的读取
  5. java加减乘除运算代码_从“位运算”炫技到“操作符”,再到逐步理解“群论”...
  6. 学Linux的你还在为正则表达式而挠头?
  7. element vue 动态单选_软件更新丨vue-element-admin 4.0.0 beta 发布,后台集成方案
  8. phpstorm xdebug本地调试断点不生效_phpstudy+phpstrom实现断点
  9. matlab textsac函数,哈工大-Matlab--2013年春季学期《MATLAB语言及应用》试题
  10. 查处的数据如何乱序_老司机总结常用镜像方法,让镜像数据更加可靠