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

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

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

时间:2009-04-07 16:13来源:未知 作者:admin 点击:
template class ForwardIterator, class T ForwardIterator find_linear(ForwardIterator first, ForwardIterator last, T value) { while (first != last) if (*first++ == value) return first; return last; }
template <class ForwardIterator, class T>
ForwardIterator find_linear(ForwardIterator first, ForwardIterator last, T& value)
{
       while (first != last)
              if (*first++ == value)
                     return first;
       return last;
}
函数find_linear()在一个容器中循环,如果找到指定的值,则返回该值的迭代器位置;否则返回past-the-end迭代器。下面用这个函数:
vector<int> v(3, 1);
v.push_back(7); // vector v:   1     1     1     7
vector<int>::iterator i = find_linear(v.begin(), v.end(), 7);
if (i != v.end())
       cout << *i;
else
       cout << “NOT FOUND”;
输出结果:7
4.2.3双向迭代器
       在向前迭代器的基础上,双向迭代器(Bidirectional Iterator)还满足以下需求:
·pre/post decrement operator
即双向迭代器不仅允许++,而且允许--。它允许一个算法走过(pass through)容器中的元素时,即可想前走,也可向后走。
       我们看一个使用双向迭代器的多遍走过(multi-pass)算法 --- 气泡排序(Bubble Sort):(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
栏目列表
推荐内容