std :: equal()有助于将[first_1,last_1)范围内的元素与从first_2开始的范围内的元素进行比较。
语法1:
template
bool equal (InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2)
first_1, last_1 : Initial and final positions of the first
sequence. All the elements are present within a range [first_1,last_1)
first2 : Initial position of the second sequence.
Returns :
true, if all of the elements in both ranges match; otherwise false
// C++ program illustrating
// use of bool equal (InputIterator1 first1, InputIterator1 last1,
// InputIterator2 first2)
#include
int main()
{
int v1[] = { 10, 20, 30, 40, 50 };
std::vector vector_1 (v1, v1 + sizeof(v1) / sizeof(int) );
// Printing vector1
std::cout << "Vector contains : ";
for (unsigned int i = 0; i < vector_1.size(); i++)
std::cout << " " << vector_1[i];
std::cout << "\n";
// using std::equal()
// Comparison within default constructor
if ( std::equal (vector_1.begin(), vector_1.end(), v1) )
std::cout << "The contents of both sequences are equal.\n";
else
printf("The contents of both sequences differ.");
}
输出:
Vector contains : 10, 20, 30, 40, 50
The contents of both sequences are equal.
语法2:
template
bool equal (InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, BinaryPredicate pred);
first_1, last_1 : Initial and final positions of the first
sequence. All the elements are present within a range [first_1,last_1)
first2 : Initial position of the second sequence.
pred : Binary function that accepts two elements as argument
and returns a value convertible to boolean.
Returns :
true, if all of the elements in both ranges match; otherwise false
// C++ program illustrating
// use of bool equal (InputIterator1 first1, InputIterator1 last1,
// InputIterator2 first2, BinaryPredicate pred);
#include
bool pred(int i, int j)
{
return (i != j);
}
int main()
{
int v1[] = { 10, 20, 30, 40, 50 };
std::vector vector_1 (v1, v1 + sizeof(v1) / sizeof(int) );
// Printing vector1
std::cout << "Vector contains : ";
for (unsigned int i = 0; i < vector_1.size(); i++)
std::cout << " " << vector_1[i];
std::cout << "\n";
// using std::equal()
// Comparison based on pred
if ( std::equal (vector_1.begin(), vector_1.end(), v1, pred) )
std::cout << "The contents of both sequences are equal.\n";
else
printf("The contents of both sequences differ.");
}
输出:
Vector contains : 10, 20, 30, 40, 50
The contents of both sequences differ.
相关文章:
- std :: max_element
- std :: max
- std :: min
- C++中的std :: min_element
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。