SGI

相等

类别: 算法 组件类型: 函数

原型

相等是一个重载名称;实际上有两个相等函数。
template <class InputIterator1, class InputIterator2>
bool equal(InputIterator1 first1, InputIterator1 last1,
           InputIterator2 first2);

template <class InputIterator1, class InputIterator2, 
          class BinaryPredicate>
bool equal(InputIterator1 first1, InputIterator1 last1,
           InputIterator2 first2, BinaryPredicate binary_pred);

描述

相等返回true如果两个范围[first1, last1)[first2, first2 + (last1 - first1))在逐元素比较时是相同的,否则返回false. [1]

第一个版本相等返回true当且仅当对于每个迭代器i[first1, last1), *i == *(first2 + (i - first1))。第二个版本相等返回true当且仅当对于每个迭代器i[first1, last1), binary_pred(*i, *(first2 + (i - first1))true.

定义

定义在标准头文件 algorithm 中,以及在非标准向后兼容的头文件 algo.h 中。

类型要求

对于第一个版本对于第二个版本

先决条件

复杂度

线性。最多last1 - first1次比较。

示例

int A1[] = { 3, 1, 4, 1, 5, 9, 3 };
int A2[] = { 3, 1, 4, 2, 8, 5, 7 };
const int N = sizeof(A1) / sizeof(int);

cout << "Result of comparison: " << equal(A1, A1 + N, A2) << endl;

注释

[1] 注意,这与mismatch的行为非常相似:唯一的区别是,当相等只是返回false如果两个范围不同,mismatch返回它们第一次不同的位置。表达式equal(f1, l1, f2)完全等效于表达式mismatch(f1, l1, f2).first == l1,实际上,这是相等可以实现的方式。

另请参阅

mismatch, search, find, find_if
[Silicon Surf] [STL Home]
Copyright © 1999 Silicon Graphics, Inc. 保留所有权利。 商标信息