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

怎么把网站做成手机版的网站推广优化外包公司

怎么把网站做成手机版的,网站推广优化外包公司,www服务器搭建个人网站,企业型网站有哪些特点lower_bound lower_bound 是 C 标准库算法&#xff0c;通常用于有序序列中查找第一个不小于给定值的元素。它属于 <algorithm> 头文件&#xff0c;并且是基于二分查找实现的&#xff0c;因此要求输入序列必须是有序的。 基本语法 #include <algorithm> // 引入算…

lower_bound

lower_bound 是 C++ 标准库算法,通常用于有序序列中查找第一个不小于给定值的元素。它属于 <algorithm> 头文件,并且是基于二分查找实现的,因此要求输入序列必须是有序的。

基本语法

#include <algorithm>  // 引入算法库Iterator lower_bound(Iterator first, Iterator last, const T& value);
  • firstlast 是迭代器,分别表示容器的起始位置和结束位置(不包括 last)。

  • value 是要在容器中查找的目标值。

  • 返回值是迭代器,指向第一个不小于 value 的元素。如果没有找到符合条件的元素,返回 last

使用条件

  • 容器中的元素必须是有序的,通常是按非递减顺序(从小到大)排列的。

  • 如果容器无序,需要先对容器进行排序,才能使用 lower_bound

返回值解释

  • 如果找到一个元素,其值不小于 value,返回指向该元素的迭代器。

  • 如果所有元素都小于 value,返回 last,即容器的末尾。

示例代码

示例 1:简单查找
#include <iostream>
#include <vector>
#include <algorithm>  // 需要引入algorithmint main() {std::vector<int> v = {1, 2, 4, 4, 5, 8, 10};int value = 4;auto it = std::lower_bound(v.begin(), v.end(), value);if (it != v.end()) {std::cout << "第一个不小于 " << value << " 的元素是: " << *it << std::endl;} else {std::cout << "没有找到不小于 " << value << " 的元素。" << std::endl;}return 0;
}

输出

第一个不小于 4 的元素是: 4

在这个例子中,lower_bound 返回了指向值为 4 的第一个元素的迭代器。

示例 2:未找到的情况
#include <iostream>
#include <vector>
#include <algorithm>int main() {std::vector<int> v = {1, 2, 4, 4, 5, 8, 10};int value = 12;auto it = std::lower_bound(v.begin(), v.end(), value);if (it != v.end()) {std::cout << "第一个不小于 " << value << " 的元素是: " << *it << std::endl;} else {std::cout << "没有找到不小于 " << value << " 的元素。" << std::endl;}return 0;
}

输出

没有找到不小于 12 的元素。

因为所有元素都小于 12,所以返回 v.end()

注意事项

  1. 容器必须有序:如果容器未排序,lower_bound 的结果是未定义的。

  2. 时间复杂度:由于使用二分查找,时间复杂度为 O(logn),其中 n 是容器中元素的数量。

  3. 自定义比较函数:如果需要使用自定义的顺序规则,可以提供一个比较函数作为参数,例如

    auto it = std::lower_bound(v.begin(), v.end(), value, custom_compare);

    其中 custom_compare 是一个函数对象,接收两个元素作为参数,返回一个布尔值,用于定义排序规则。

lower_bound 是一个非常实用的函数,特别适合在有序数据中进行高效的查找操作。

upper_bound

upper_bound 是 C++ 标准库中的一个算法函数,与 lower_bound 类似,它也用于有序序列中查找特定值的位置,但功能略有不同。upper_bound 用于查找第一个大于给定值的元素的位置。它同样基于二分查找实现,因此要求输入序列必须是有序的。

基本语法

#include <algorithm>  // 引入算法库Iterator upper_bound(Iterator first, Iterator last, const T& value);
  • firstlast 是迭代器,分别表示容器的起始位置和结束位置(不包括 last)。

  • value 是要在容器中查找的目标值。

  • 返回值是迭代器,指向第一个大于 value 的元素。如果没有找到符合条件的元素,返回 last

使用条件

  • 容器中的元素必须是有序的,通常是按非递减顺序(从小到大)排列的。

  • 如果容器无序,需要先对容器进行排序,才能使用 upper_bound

返回值解释

  • 如果找到一个元素,其值大于 value,返回指向该元素的迭代器。

  • 如果所有元素都小于或等于 value,返回 last,即容器的末尾。

示例代码

示例 1:简单查找
#include <iostream>
#include <vector>
#include <algorithm>  // 需要引入algorithmint main() {std::vector<int> v = {1, 2, 4, 4, 5, 8, 10};int value = 4;auto it = std::upper_bound(v.begin(), v.end(), value);if (it != v.end()) {std::cout << "第一个大于 " << value << " 的元素是: " << *it << std::endl;} else {std::cout << "没有找到大于 " << value << " 的元素。" << std::endl;}return 0;
}

输出

第一个大于 4 的元素是: 5

在这个例子中,upper_bound 返回了指向值为 5 的元素的迭代器。

示例 2:未找到的情况
#include <iostream>
#include <vector>
#include <algorithm>int main() {std::vector<int> v = {1, 2, 4, 4, 5, 8, 10};int value = 12;auto it = std::upper_bound(v.begin(), v.end(), value);if (it != v.end()) {std::cout << "第一个大于 " << value << " 的元素是: " << *it << std::endl;} else {std::cout << "没有找到大于 " << value << " 的元素。" << std::endl;}return 0;
}

输出

没有找到大于 12 的元素。

因为所有元素都小于或等于 12,所以返回 v.end()

注意事项

  1. 容器必须有序:如果容器未排序,upper_bound 的结果是未定义的。

  2. 时间复杂度:由于使用二分查找,时间复杂度为 O(logn),其中 n 是容器中元素的数量。

  3. 自定义比较函数:如果需要使用自定义的顺序规则,可以提供一个比较函数作为参数,例如

    auto it = std::upper_bound(v.begin(), v.end(), value, custom_compare);

    其中 custom_compare 是一个函数对象,接收两个元素作为参数,返回一个布尔值,用于定义排序规则。

  4. lower_bound 的区别

    • lower_bound 返回第一个不小于给定值的元素。

    • upper_bound 返回第一个大于给定值的元素。

    • 如果容器中存在多个相同的值,lower_bound 会返回第一个等于该值的元素,而 upper_bound 会返回第一个大于该值的元素。

应用场景

upper_bound 常用于以下场景:

  • 在有序序列中查找第一个大于某个值的元素。

  • 用于实现区间查找,例如结合 lower_boundupper_bound 来查找某个值的范围。

http://www.dtcms.com/wzjs/121487.html

相关文章:

  • 特色专业网站建设模板搜索引擎推广的基本方法
  • 全国人大网站建设规划免费的个人网站html代码
  • 网站开发标准热点事件营销案例
  • 乐清上班族网论坛海南seo顾问服务
  • wordpress中常用插件安装包重庆 seo
  • 网站做的最好的公司世界网站排名查询
  • 图书网站开发需求文档模板长春网站建设路
  • 拱墅区做网站长沙本地推广
  • 一个营业执照可以做两个网站适合40岁女人的培训班
  • 南宁手机做网站公司线上网络推广怎么做
  • 八年级信息上册如何做网站北京百度推广电话
  • 黑龙江做网站的公司有哪些优秀网站设计案例
  • 有没有学做蛋糕的网站和视频优化好搜移动端关键词快速排名
  • app手机网站模板免费下载谷歌官网登录入口
  • 西安网站开发招聘西安百度推广公司
  • 天元建设集团有限公司公章图片企业网站推广优化公司
  • 宁波营销型网站建设优化建站关键词优化seo优化排名
  • 鹤山网站建设网络推广推广培训
  • 重庆做兼职哪个网站360免费做网站
  • 一般网站开发公司在线代理浏览网站
  • 网站后台框架模版宁波seo排名优化价格
  • 品牌网站推广方案外链代发2分一条
  • 网站建设公司资质网站关键词上首页
  • 微信网站推广我在百度下的订单如何查询
  • 优秀的手机网站2022年最新十条新闻
  • 做网站推广的好处优化大师兑换码
  • 建设 大型电子商务网站网店代运营合同
  • 襄樊网站建设哪家好百度推广联系方式
  • 做预算需要关注哪些政府网站站长统计
  • 锦州网站建设工作招聘seo专员