当前位置: 首页 > article >正文

算法-二分查找2(代码笔记)

void LowerBound() {
    t("lower_bound");
    /* 
        lower_bound的主要作用是返回一个迭代器,指向第一个 *不小于* 给定值(称为value)的元素。
        如果所有元素都不大于value(即所有元素都小于或等于value),则返回指向范围末尾的迭代器。 
        语法:lower_bound(开始位置,结束位置的下一个位置,要查找的值);
            位置:数组元素位置用数组名+下标表示,向量数组vector用.begin()/.end()表示
    */
    int a[] = {1, 2, 2, 2, 3, 4, 5};  
    int n = 7;
    int value = 6;// 0-0; 2-1; 5-6; 6-7
  
    // 使用 lower_bound 查找第一个不小于 value 的元素  
    auto it = lower_bound(a, a+n, value);  
    cout << (it-a);
}

void UpperBound() {
    t("upper_bound");
    /* 
        upper_bound的主要作用是返回一个迭代器,指向第一个 *大于* 给定值(称为value)的元素。
        如果所有元素都不大于value(即所有元素都小于或等于value),则返回指向范围末尾的迭代器。 
        语法:upper_bound(开始位置,结束位置的下一个位置,要查找的值);
            位置:数组元素位置用数组名+下标表示,向量数组vector用.begin()/.end()表示
    */
  
    int a[] = {1, 2, 2, 2, 3, 4, 5};  
    int n = 7;
    int value = 2;// 0-0; 1-1;2-4;5-7;6-7
  
    // 使用 upper_bound 查找第一个大于 value 的元素  
    auto it = upper_bound(a, a+n, value);  
    cout << (it-a);
  
    vector<int> vec = {1, 2, 2, 2, 3, 4, 5};  
    value = 0;  // 0-0; 1-1;2-4;5-7;6-7
  
    // 使用 upper_bound 查找第一个大于 value 的元素  
    auto it2 = upper_bound(vec.begin(), vec.end(), value);  
    cout << (it2-vec.begin()) << endl;
  
}
 


http://www.kler.cn/a/404958.html

相关文章:

  • 一维卷积神经网络(1D-CNN)
  • 大语言模型中ReLU函数的计算过程及其函数介绍
  • 【Android】线程池的解析
  • tcpdump抓取流量包详解
  • 纯血鸿蒙NEXT-组件导航 (Navigation)
  • python成绩分级 2024年6月python二级真题 青少年编程电子学会编程等级考试python二级真题解析
  • 在 Ubuntu 上配置防火墙以开放特定端口
  • 【Redis_Day5】String类型
  • Python Matplotlib 数据可视化全面解析:选择它的七大理由与入门简介
  • SQL面试题——交叉窗口计算
  • es执行_update_by_query要注意
  • Mac系统下配置 Tomcat 运行环境
  • 基于边缘计算技术的机器状态监测系统
  • 2024年11月17日Github流行趋势
  • 数据库视图-多表
  • 力扣题解(新增道路查询后的最短距离II)
  • 自适应安全框架(ASA)在网络安全2.0新防御体系中的应用
  • Mybatis框架之模板方法模式 (Template Method Pattern)
  • 深入理解 Java 阻塞队列:使用场景、原理与性能优化
  • 11.21Scala
  • reids基础
  • 软件测试最全单元测试之mock使用_maven项目mock单元测试,2024年最新关于软件测试性能优化的几点建议
  • Scala中Arry
  • w048基于web的校园资料分享平台
  • 深度学习之FCN
  • 241117学习日志——[CSDIY] [ByteDance] 后端训练营 [05]