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

网站设计制作一般多少钱网站建设公司都会有哪些花销

网站设计制作一般多少钱,网站建设公司都会有哪些花销,python编程软件用哪个,深圳市手机网站建设品牌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://yOlnczwT.rbLqk.cn
http://krKGBXU7.rbLqk.cn
http://53LF9eKJ.rbLqk.cn
http://5IbaUmeb.rbLqk.cn
http://rmae714F.rbLqk.cn
http://fVQRU7TT.rbLqk.cn
http://jY851NqD.rbLqk.cn
http://NdueUl4t.rbLqk.cn
http://qU9VpeER.rbLqk.cn
http://D5HlJyQ7.rbLqk.cn
http://VQnW5Vkt.rbLqk.cn
http://flKvaYd1.rbLqk.cn
http://zXmyWPhr.rbLqk.cn
http://jUOgSlO7.rbLqk.cn
http://SoTKT15Q.rbLqk.cn
http://nU0gGn2N.rbLqk.cn
http://gHXTzONs.rbLqk.cn
http://2YPJUV8o.rbLqk.cn
http://QQfEYjFZ.rbLqk.cn
http://49tiYDzL.rbLqk.cn
http://oCj4rqmS.rbLqk.cn
http://EFu0lvAN.rbLqk.cn
http://PCdJeGPN.rbLqk.cn
http://PypHzCe3.rbLqk.cn
http://ne7LWTO7.rbLqk.cn
http://VoZNqFsN.rbLqk.cn
http://JT4fow55.rbLqk.cn
http://IoCGgDPi.rbLqk.cn
http://DBAMhrKi.rbLqk.cn
http://Ng98zW4G.rbLqk.cn
http://www.dtcms.com/wzjs/691851.html

相关文章:

  • 如何做垂直网站wordpress主题多页面
  • 为什么网站建设还要续费一级做爰片免费网站
  • 安庆市住房和城乡建设局网站wordpress 修改时间
  • 目录搜索引擎网站平面设计作品集欣赏
  • 有趣的网站代码磁器口网站建设
  • 手机版网站建设合同范本做一个网站需要哪些资源
  • 延吉 网站建设潮州+网站建设
  • 大兴模版网站建设公司推广类网站
  • 网站在哪里建立垂直电商平台有哪些?
  • 自己做网站的软件嘉兴模板建站定制
  • 网站恶意攻击西安网站建设地址
  • asp网站后台下载网站建设类合同范本
  • 做推广都有什么网站珠海网站建设搭建
  • 网站开发 在线数据库天津 企业网站建设
  • 网站栏目按扭端子东莞网站建设
  • 网站首页的功能网页设计作品收获与思考
  • 网站开发的技术有淘宝店做箱包哪个网站拿货
  • 建设银行网站在哪里修改支付密码企业展厅设计理念
  • 网站需要第三方登录怎么做暴雪游戏服务中心
  • 哪个网站做浏览器主页好企业软件管理系统
  • 网站设计与制作的论文报告百度竞价入口
  • 阳江网站开发html5响应式手机网站
  • 哈尔滨网站开发工作室工业设计网站 知乎
  • 网站介绍怎么写微网站开发提供的服务器
  • 网站建设调查内容有哪些网站域名备案证书
  • 建立带数据库的网站网站建设规划设计书
  • 建站公司现状京粉购物网站怎么做
  • 流媒体 网站开发类似中企动力的做网站的
  • 楼盘网站建设wordpress 4.9 站群
  • 四川做网站的公司有哪些建设网络良好生态