thrust

## ◆ equal() [2/4]

template<typename InputIterator1 , typename InputIterator2 >
 bool thrust::equal ( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2 )

`equal` returns `true` if the two ranges `[first1, last1)` and `[first2, first2 + (last1 - first1))` are identical when compared element-by-element, and otherwise returns `false`.

This version of `equal` returns `true` if and only if for every iterator `i` in `[first1, last1)`, `*i == *(first2 + (i - first1))`.

Parameters
 first1 The beginning of the first sequence. last1 The end of the first sequence. first2 The beginning of the second sequence.
Returns
`true`, if the sequences are equal; `false`, otherwise.
Template Parameters
 InputIterator1 is a model of Input Iterator, and `InputIterator1's` `value_type` is a model of Equality Comparable, and `InputIterator1's` `value_type` can be compared for equality with `InputIterator2's` `value_type`. InputIterator2 is a model of Input Iterator, and `InputIterator2's` `value_type` is a model of Equality Comparable, and `InputIterator2's` `value_type` can be compared for equality with `InputIterator1's` `value_type`.

The following code snippet demonstrates how to use `equal` to test two ranges for equality.

#include <thrust/equal.h>
...
int A1 = {3, 1, 4, 1, 5, 9, 3};
int A2 = {3, 1, 4, 2, 8, 5, 7};
...
bool result = thrust::equal(A1, A1 + 7, A2);
// result == false