一种特别有用的标准算法std::equal,定义如下:
template <typename InputIterator1, typename InputIterator2>
inline bool equal(InputIterator1 start1,
InputIterator1 end1,
InputIterator2 start2)
{
while(start1 != end1)
{
if(*start1 != *start2) return false;
++start1;
++start2;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
该算法遍历由[start1, end1)and 定义的范围,
[start2, start2 + (end1 – start1))并返回该范围内的元素是否相等.请注意,该算法在两种不同类型的输入迭代器上进行了模板化.
为什么是这样?