使用vector迭代器实现二分查找

2023-11-09

//vector二分查找

#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;

int main()
{
	vector<int> text = { 1,2,4,5,6,7,8,10,12 };
	int result;
	cin >> result;
	auto lo = text.begin();//获得首元素的迭代器对象
	auto hi = text.end();//获得尾元素的迭代器对象
	auto mid = lo + (hi - lo) / 2;//中间元素迭代器
	while (hi!= lo && *mid != result) {
		if (result < *mid) {
			hi = mid;
		}
		else {
			lo = mid + 1;
		}
		mid = lo + (hi - lo) / 2;

	}
	if (*mid==result) {
		cout << "yes"<<endl;
	}
	else {
		cout << "no" << endl;
	}
	system("pause");
    return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用vector迭代器实现二分查找 的相关文章

  • C# 入门教程

    C 简介 C 是一个简单的 现代的 通用的 面向对象的编程语言 它是由微软 Microsoft 开发的 下面列出了C 成为一种广泛应用的专业语言的原因 现代的 通用的编程语言 面向对象 面向组件 容易学习 结构化语言 它产生高效率的程序 它
  • clickhouse-jdbc代码优化实现无感知故障转移及负载均衡

    clickhouse数据库一直以单点功能强悍而闻名 在单点性能上 无人出其右 但是也需要指出的是 clickhouse集群的集群管理功能却是非常薄弱的 比如说无集群统一管理功能 无集群统一读写接口 仅依靠分布式表和副本表 实现了多节点之间数
  • cas cvm服务器虚拟化安装虚拟机,CAS系统如何安装虚拟机

    1 在CVM的云平台中选择一台物理服务器右击 在弹出的选项中选择 增加虚拟机 给虚拟机配置名称 选择操作系统版本 这一步一定要注意 这里选择的操作系统版本指的是会安装对应操作系统版本的驱动 如果这里选择的版本和实际安装的操作系统版本不一致会
  • 使用Python,OpenCV和Hough圆检测图像中的圆

    使用Python OpenCV和Hough圆检测图像中的圆 1 效果图 2 cv2 HoughCircles image method dp minDist 3 源码 参考 前几篇博客中有介绍 使用OpenCV检测图形中的三角形 正方形 矩
  • Oracle sys_guid()函数

    简介 SYS GUID 是Oracle 8i 后提供的函数 产生并返回一个全球唯一的标识符 类似于Java的UUID 使用方法 select sys guid from dual 运行效果 解决乱码 select RAWTOHEX sys
  • JAVA介绍

    1 Java的简单介绍 Java作为C语言和C 的衍生物 其有很多的功能与C语言及C 的功能相似 但是又不同与C语言及C 在Java的领域中 其相对于C语言及C 所具有的特征为没有指针 没有内存管理 具有真正的可移植性 及可以跨平台进行创作

随机推荐

  • 走进音视频的世界——RGB与YUV格式

    在图像的世界里 一般使用RGB作为存储格式 而在视频的世界里 一般使用YUV作为压缩存储格式 有时候面试官会问 为什么视频使用YUV来压缩存储 而不用RGB YUV与RGB有什么区别 两者如何转换的 常见的RGB格式有哪些 常见的YUV格式
  • LInux服务器巡检脚本模版

    Linux服务器巡检脚本模版可以用来定期检查服务器的状态和运行情况 以便及时发现并解决问题 下面是一个简单的巡检脚本模版供参考 bin bash 定义变量 LOG FILE var log server check log EMAIL AD
  • 标签平滑Label Smoothing

    转载 https cloud tencent com developer article 1815786 目录 One hot gt Label Smoothing label smoothing 降低feature norm 标签平滑归一
  • buuctf-[ACTF2020 新生赛]Exec(小宇特详解)

    buuctf ACTF2020 新生赛 Exec 小宇特详解 这里是ping 我首先想到了ping本地 然后用其他语句找到flag 后来看其他人的办法是进行了抓包 这里先用一个常用管道符 1 就是按位或 直接执行 后面的语句 2 逻辑或 如
  • 【漏洞复现】JDWP远程命令执行漏洞

    0x01 简介 JPDA Java Platform Debugger Architecture 即Java平台调试体系架构 Java虚拟机设计的专门的API接口供调试和监控虚拟机使用 JPDA按照抽象层次 又分为三层 分别是 JVM TI
  • IP地址和子网掩码

    本科的时候其实修过计算机网络 但是现在基本上都还给老师了 在这里重新学习一下IP地址的相关内容 1 IP地址的分类 A类 000 127 默认子网掩码 255 0 0 0 B类 128 191 默认子网掩码 255 255 0 0 C类 1
  • 在修复小型森林道路的过程中使用无人机估算土方工程量的可能性

    小规模道路施工作业 主要是土方作业 通常发生在斜坡上 需要有更多的空间进行临时土壤储存 有必要在有限的区域内反复挖掘 临时放置和填充土壤 因此 很难预测和量化进行的土方工程量 因为仅仅通过比较施工前的土壤形状和已完成地面的形状很难确定所有进
  • Ubuntu 20.04从0到跑通yolov5 v6.0

    Ubuntu 20 04 安装与卸载 一 卸载ubuntu 参考 双系统下完全卸载ubuntu 哔哩哔哩 bilibili 二 安装ubuntu 电脑配置 r7000p 3050ti 步骤 制作启动盘 win 下 磁盘管理 压缩卷 压缩多少
  • 公有云和ChatGPT关系不大

    前段时间要过年 休养身体 写长篇 所以公众号停更了两个月 本文解释了AI云为什么不会成为云厂商的重要营收途径 延伸分析了一些云产品的本质 1 流量密码不是财富密码 这两个月才突然热议ChatGPT的朋友 其实技术嗅觉有点迟钝 见识有点落伍
  • IDEA创建java项目src下没有办法创建包文件/MAVEN模块名变灰且模块多道横杠

    1 IDEA中的java项目src下无法创建包文件 原因 这是因为该项目的src文件夹不是源文件夹 解决方法 需右键该文件夹 选择标记 源根 2 MAVEN模块名变灰且模块多道横杠 原因 api项目的pom xml文件被设置在maven忽略
  • 日志框架:slf4j、log4j和logback的基本使用

    slf4j是日志框架的标准 即通用接口 实现了日志框架一些通用的api 而log4j和logback是众多日志框架中的几种 log4j和logback可以单独的使用 也可以绑定slf4j一起使用 1 单独使用时分别调用框架自己的方法来输出日
  • Multi-level Attention Networks for Visual Question Answering阅读笔记

    Multi level Attention Networks 这个模型可以同时提取高级语义信息和空间信息 模型框架如下所示 该模型分为三个部分 分别是Semantic Attention Context aware Visual Atten
  • 云计算的快速发展,未来主要的发展趋势是什么?

    1 云计算的分工将会变得更加细化 随着云计算产业生态链不断完善 行业分工逐渐细化 在未来年 云计算的分工更加细化 行业云将成为云计算领域的发展热点 2 Iaas将迎来更大的降价风潮 万物互联对云计算带来更大的需求 在行业竞争和规模效应的驱动
  • 张飞硬件第四部(二)

    文章目录 第一章 项目背景 第二章 项目条件 第三章 项目实现 第一节 涉及知识点 1 1 三级管的放大作用 1 1 1 原理 1 1 2 正反馈与负反馈 1 1 3 共模干扰与差模干扰 1 1 4 差模放大 1 1 5 运算放大器 第一章
  • ESP8266EX使用SDK开发串口调试乱码

    目录 问题如图所示 问题分析 问题解决 问题如图所示 问题分析 有输出信号 说明有数据产生 可能原因 波特率不匹配 时钟频率不对 问题解决 不断调整串口调试助手的波特率9600 115200 不管用 把ESP8266的默认波特率改为9600
  • Maven使用指南(超详细)

    Maven高级 目标 理解并实现分模块开发 能够使用聚合工程快速构建项目 能够使用继承简化项目配置 能够根据需求配置生成 开发 测试环境 并在各个环境间切换运行 了解Maven的私服 1 分模块开发 1 1 分模块开发设计 1 按照功能拆分
  • 关于微信公众号获取token值和模板推送接口对接问题

    今天做了一个关于微信的接口 由于以前没有接触过关于微信的问题 现在碰到了查了很多资料 下面总结一下 1 获取token值 微信获取公众号token值需要公众号的appid和secret 这两个值是微信提供的 是不会变的 获取token值地址
  • 动力节点Java17最新零基础视频-第三章 Java基础语法

    标识符 掌握 什么是标识符 在Java中 标识符是用来给变量 方法 类和包等命名的字符序列 标识符由字母 数字 下划线和美元符号组成 但是第一个字符必须是字母 下划线或美元符号 标识符不能包含空格或其他特殊字符 也不能与Java关键字相同
  • gojs 节点(node)/线(link)的动态添加及样式(nodeTemplate / linkTemplateMap)

    1 创建节点及节点样式 节点样式可以是多种的 你阔以 可以 给不同的节点设置不同的样式 或者是直接设置一个通用的样式 比如 var CreateNode key getNextKey 设置key的方法 每个节点最好是有自己独立的key ca
  • 使用vector迭代器实现二分查找

    vector二分查找 include stdafx h include