开闭区间
任何一个STL算法,都需要获得一对迭代器(泛型指针)所标示的区间,用以表示操作范围。
但是,需要注意的是这一对迭代器所标示的是一个前闭后开的区间,即“【begin,end)”。即说明,整个实际范围从begin开始,直到end-1结束”。迭代器所指的是“最后一个元素的下一位”。也就说,end迭代器指的并非是最后一个元素,而是最后一个元素的下一位置。
这样做有什么好处呢?
template <class InputIterator,class T>
InputIterator find(InputIterator first,InputIterator last,const T& value)
{
while(first!=last&&*first!=value)//last指向最后一个元素的下一元素
{++fisrt;}
}
template <class InputIterator,class Function >
Function for_each(InputIterator first,InputIterator last,Function f)
{
for (;,first!=last;++first)
f(*first);
return f;
}