|
thrust
|
Functions | |
| template<typename InputIterator1 , typename InputIterator2 > | |
| bool | thrust::equal (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2) |
| template<typename InputIterator1 , typename InputIterator2 , typename BinaryPredicate > | |
| bool | thrust::equal (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, BinaryPredicate binary_pred) |
| 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)).
| first1 | The beginning of the first sequence. |
| last1 | The end of the first sequence. |
| first2 | The beginning of the second sequence. |
true, if the sequences are equal; false, otherwise.| 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[7] = {3, 1, 4, 1, 5, 9, 3}; int A2[7] = {3, 1, 4, 2, 8, 5, 7}; ... bool result = thrust::equal(A1, A1 + 7, A1); // result == false
| bool thrust::equal | ( | InputIterator1 | first1, |
| InputIterator1 | last1, | ||
| InputIterator2 | first2, | ||
| BinaryPredicate | binary_pred | ||
| ) |
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), binary_pred(*i, *(first2 + (i - first1))) is true.
| first1 | The beginning of the first sequence. |
| last1 | The end of the first sequence. |
| first2 | The beginning of the second sequence. |
| binary_pred | Binary predicate used to test element equality. |
true, if the sequences are equal; false, otherwise.| InputIterator1 | is a model of Input Iterator, and InputIterator1's value_type is convertible to BinaryPredicate's first_argument_type. |
| InputIterator2 | is a model of Input Iterator, and InputIterator2's value_type is convertible to BinaryPredicate's second_argument_type. |
| BinaryPredicate | is a model of Binary Predicate. |
The following code snippet demonstrates how to use equal to compare the elements in two ranges modulo 2.
#include <thrust/equal.h> __host__ __device__ struct compare_modulo_two { bool operator()(int x, int y) { return (x % 2) == (y % 2); } }; ... int x[5] = {0, 2, 4, 6, 8, 10}; int y[5] = {1, 3, 5, 7, 9, 11}; bool result = thrust::equal(x, x + 5, y, compare_modulo_two()); // result is true
1.7.4