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

移动互联网技术优化大师班级

移动互联网技术,优化大师班级,java做网站开发成本高,做网站服务器价格多少合适C中提供的所有关于查找的函数 std::find(begin(), end(), key) std::find(begin(), end(), key):这个函数用于在一个范围内查找一个等于给定值的元素,返回一个指向该元素的迭代器,如果没有找到则返回范围的结束迭代器。 1.1 例如&#xff…

C++中提供的所有关于查找的函数

std::find(begin(), end(), key)

std::find(begin(), end(), key):这个函数用于在一个范围内查找一个等于给定值的元素,返回一个指向该元素的迭代器,如果没有找到则返回范围的结束迭代器。

  • 1.1 例如,如果我们有一个整数向量std::vector<int> v = {1, 2, 3, 4, 5};,我们用std::find查找3
    std::vector<int> iter = std::find(v.begin(), v.end(), 3);if(iter != v.end())std::cout << *iter << std::endl;

std::count()

std::count():这个函数用于统计一个范围内等于给定值的元素的个数,返回一个整数。

  • 2.1 例如,如果我们有一个字符数组char s[] = "Hello, world!";,计算l字符出现的次数,
    我们可以用std::count(s, s + 13, 'l')来统计数组中'l'的个数,返回3。
    int countNum = std::count(s, s + 13, 'w');std::cout << countNum << std::endl;

std::find_if()

std::find_if():这个函数用于在一个范围内查找一个满足给定谓词的元素,返回一个指向该元素的迭代器,如果没有找到则返回范围的结束迭代器。谓词是一个接受一个元素作为参数并返回一个布尔值的函数或函数对象。

  • 3.1 例如,如果我们有一个字符串向量std::vector<std::string> words = {"apple", "banana", "cherry", "date"};,我们可以定义一个谓词函数bool is_longer_than_five(const std::string& s) { return s.size() > 5; },然后用std::find_if(words.begin(), words.end(), is_longer_than_five)来查找第一个长度大于5的字符串,在这个例子中是"banana"。
    std::vector<std::string> words = {"apple", "banana", "cherry", "date"};std::find_if(words.begin(), words.end(), [](const std::string& s){ return s.size() > 5;});

std::any_if()

std::any_if():这个函数用于判断一个范围内是否存在一个满足给定谓词的元素,返回一个布尔值。谓词是同上。

  • 4.1 例如,如果我们有一个浮点数数组double a[] = {1.2, 3.4, 5.6, 7.8};,我们可以定义一个谓词函数bool is_integer(double x) { return std::floor(x) == x; },然后用std::any_if(a, a + 4, is_integer)来判断数组中是否有整数,在这个例子中是false。
    double a[] = {1.2,3.4,5.6,7.8};std::any_if(a, a+4, [](double x){std::floor(x) == x;});

std::binary_search():这个函数用于在一个已经排序的范围内查找一个等于给定值的元素,返回一个布尔值。如果范围没有排序,则结果是未定义的。

  • 5.1 例如,如果我们有一个整数数组int b[] = {2, 4, 6, 8, 10};,我们可以用std::binary_search(b, b + 5, 6)来判断数组中是否有6,在这个例子中是true。

std::lower_bound()

std::lower_bound():这个函数用于在一个已经排序的范围内查找第一个不小于给定值的元素,返回一个指向该元素的迭代器,如果没有找到则返回范围的结束迭代器。

  • 6.1 例如,如果我们有一个整数向量std::vector<int> v = {1, 2, 4, 6, 8};,我们可以用std::lower_bound(v.begin(), v.end(), 5)来查找第一个不小于5的元素,在这个例子中是6。

std::upper_bound()

std::upper_bound():这个函数用于在一个已经排序的范围内查找第一个大于给定值的元素,返回一个指向该元素的迭代器,如果没有找到则返回范围的结束迭代器。

  • 7.1 例如,如果我们有一个整数向量std::vector<int> v = {1, 2, 4, 6, 8};,我们可以用std::upper_bound(v.begin(), v.end(), 5)来查找第一个大于5的元素,在这个例子中是6。

std::equal_range()

std::equal_range():这个函数用于在一个已经排序的范围内查找等于给定值的一段连续元素,返回一个包含两个迭代器的pair,分别指向该段元素的起始和结束位置,如果没有找到则返回两个相等的迭代器。

  • 8.1 例如,如果我们有一个整数向量std::vector<int> v = {1, 2, 4, 4, 4, 6, 8};,我们可以用std::equal_range(v.begin(), v.end(), 4)来查找等于4的一段元素,在这个例子中返回的pair是{v.begin() + 2, v.begin() + 5}³。

时间复杂度

  • std::find():线性时间复杂度,即O(n)
  • std::count():线性时间复杂度,即O(n)
  • std::find_if():线性时间复杂度,即O(n)
  • std::any_if():线性时间复杂度,即O(n)
  • std::binary_search():对数时间复杂度,即O(log n)
  • std::lower_bound():对数时间复杂度,即O(log n)
  • std::upper_bound():对数时间复杂度,即O(log n)
  • std::equal_range():对数时间复杂度,即O(log n)

执行效率由高到低排序

  • std::binary_search()
  • std::lower_bound()
  • std::upper_bound()
  • std::equal_range()
  • std::find()
  • std::count()
  • std::find_if()
  • std::any_if()
http://www.qdjiajiao.com/news/1084.html

相关文章:

  • 合肥企业网站建设工seo搜索工具栏
  • 网站开发培训什么必应搜索引擎入口官网
  • 前端实战项目11套站长工具seo综合查询引流
  • 做ps找图的网站有哪些培训机构是干什么的
  • 什么网站百度收录快东莞网站建设做网站
  • php动态网站制作流程图热点军事新闻
  • h5网站价格佛山网络推广哪里好
  • 网站代备案多少钱大批量刷关键词排名软件
  • 客户拒绝做网站的理由抖音seo排名软件
  • 网站建设营销型网站海外市场推广做什么的
  • 重庆做兼职哪个网站哈尔滨最新消息
  • wordpress图文教程南宁优化网站收费
  • 复兴专业做网站山东16市最新疫情
  • 网站单独页面怎么做301重定向百度登陆页面
  • 手机网站制作工具杭州优化商务服务公司
  • 旅游做网站seo怎么推广
  • 网页制作三剑客不包括进一步优化落实
  • 做兼职的设计网站有哪些企业培训课程推荐
  • 淄博云天网站建设推广网上营销推广
  • 网站都有备案号吗seo是啥软件
  • 网站建设的电话怎么制作百度网页
  • 北京网站改版有什么用快速网站排名优化
  • 黑龙江 俄语网站制作电子商务网站有哪些?
  • 装修网网站建设不知怎么入门
  • jsporacle动态网站开发企业推广的网站
  • 建筑公司网站首页图片百度权重划分等级
  • 最好的完全免费开源企业网站什么网站百度收录快
  • 钓鱼网站制作的报告网络营销推广价格
  • 黑客怎么攻击网站网络推广是指什么
  • 做的最好自考网站是哪个网络促销