#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
const int SIZE = 10;
int a1[ SIZE ] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int a2[ SIZE ] = { 1, 2, 3, 4, 1000, 6, 7, 8, 9, 10 };
vector< int > v1( a1, a1 + SIZE ),
v2( a1, a1 + SIZE ),
v3( a2, a2 + SIZE );
bool result = equal( v1.begin(), v1.end(), v2.begin() );
cout << "\n\nVector v1 " << ( result ? "is" : "is not" )
<< " equal to vector v2.\n";
result = equal( v1.begin(), v1.end(), v3.begin() );
cout << "Vector v1 " << ( result ? "is" : "is not" )
<< " equal to vector v3.\n";
pair< vector< int >::iterator,
vector< int >::iterator > location;
location = mismatch( v1.begin(), v1.end(), v3.begin() );
cout << "\nThere is a mismatch between v1 and v3 at "
<< "location " << ( location.first - v1.begin() )
<< "\nwhere v1 contains " << *location.first
<< " and v3 contains " << *location.second
<< "\n\n";
char c1[ SIZE ] = "HELLO", c2[ SIZE ] = "BYE BYE";
result = lexicographical_compare( c1, c1 + SIZE, c2, c2 + SIZE );
cout << c1
<< ( result ? " is less than " : " is greater than " )
<< c2;
cout << endl;
return 0;
}