网管联盟-网管软件下载-搞乐乐网站全力打造网管之家

当前位置: 网管>编程开发>C++>

标准模板库STL(Standard Template Library)(36)

时间:2009-04-07 16:13来源:未知 作者:admin 点击:
mid = lo+(hi-lo)/2; if (value == *mid) return mid; if (value *mid) hi = mid; else lo = mid+1; } return last; } 现在可以看出,first和last两个指针是任意类型的指针,即它们和类型T是没有关系的。这时就用到
              mid = lo+(hi-lo)/2;
              if (value == *mid)
                     return mid;
              if (value < *mid)
                     hi = mid;
              else
                     lo = mid+1;
       }
       return last;
}
现在可以看出,first和last两个指针是任意类型的指针,即它们和类型T是没有关系的。这时就用到了迭代器(Iterator)的概念,因为这里排序要对容器任意存取,我们把first和last的类型命名为“RandomAccessIterator”。代码改写如下:
template <class RandomAccessIterator, class T>
RandomAccessIterator binary_search(RandomAccessIterator first, RandomAccessIterator last, const T& value)
{
       RandomAccessIterator not_found = last, mid;
       while (first != last)
       {
              mid = first+(last-first)/2;(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
栏目列表
推荐内容