algorithm - STL C++

equal()

Declaration

template <class InputIterator1, class InputIterator2>
bool equal(
	InputIterator1 xFirst1,
	InputIterator1 xLast1,
	InputIterator2 xFirst2
);

Description

This function checks the entries that are in the range from "xFirst1" up to the entry before "xLast1" to see if they are equal to the entries starting at "xFirst2."

Header Include

#include <algorithm>

Overloads

template <class InputIterator1, class InputIterator2, class BinaryPredicate>
bool equal(
	InputIterator1 xFirst1,
	InputIterator1 xLast1,
	InputIterator2 xFirst2,
	BinaryPredicate xComp
);

Example

#include <iostream>
#include <vector>
#include <algorithm>

int main()
{
	using namespace std;

	// Create two vector instances
	vector<char> qV1;
	qV1.push_back('X');
	qV1.push_back('o');
	qV1.push_back('a');
	qV1.push_back('X');

	vector<char> qV2;
	qV2.push_back('X');
	qV2.push_back('o');
	qV2.push_back('a');
	qV2.push_back('X');
	qV2.push_back('.');
	qV2.push_back('n');
	qV2.push_back('e');
	qV2.push_back('t');

	// Output the vector comparison regions with the first check
	bool qAreEqual = equal(qV1.begin(), qV1.end(), qV2.begin());
	vector<char>::iterator qIter1;
	for (qIter1 = qV1.begin(); qIter1 != qV1.end(); ++qIter1) {
		cout << *qIter1;
	}
	cout << (qAreEqual ? " is " : "is not " ) << "equal to ";
	vector<char>::iterator qIter2;
	for (qIter1 = qV1.begin(), qIter2 = qV2.begin();
		qIter1 != qV1.end(); ++qIter1, ++qIter2)
	{
		cout << *qIter2;
	}
	cout << endl;

	// Output the vector comparison regions with the second check
	qAreEqual = equal(qV1.begin(), qV1.end(), qV2.begin() + 1);
	for (qIter1 = qV1.begin(); qIter1 != qV1.end(); ++qIter1) {
		cout << *qIter1;
	}
	cout << (qAreEqual ? " is " : " is not " ) << "equal to ";
	for (qIter1 = qV1.begin(), qIter2 = qV2.begin() + 1;
		qIter1 != qV1.end(); ++qIter1, ++qIter2)
	{
		cout << *qIter2;
	}

	// Keep the window open
	cin.get();
	return 0;
}

Output

equal() Output
 

© 2007–2024 XoaX.net LLC. All rights reserved.