栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++——迭代器的运算

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++——迭代器的运算

使用迭代器的经典算法是二分搜索。二分搜索从中间开始搜索,如果中间元素刚好是目标元素,搜索完成,如果不是,在前半部分或是后半部分继续搜索,重复二分搜索过程,直到找到目标元素:

迭代器下的二分搜索:

// text必须有序
// beg和end表示搜索范围
auto beg = text.begin(), end = text.end();
auto mid = text.begin() + (end - beg)/2; // 初始状态下的中间点
// 当还有元素尚未检查并且我们还没找到目标元素时:
while (mid != end && *mid != sought) {
    if(sought < *mid)    // 目标元素在前半部分
        end = mid;       
    else                 // 目标元素在后半部分
        beg = mid + 1;
    mid = beg + (end - beg)/2;
}

该程序开始定义了三个迭代器,beg指向搜索范围内的第一个元素,end指向尾元素,mid指向中间元素。初始状态下,搜索范围是名为text的vector的全部范围。

        

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/738246.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号