C++/Vector/vector compare

Материал из C\C++ эксперт
Перейти к: навигация, поиск

Checking If Two Containers Are Equal with == operator

<source lang="cpp">

  1. include <algorithm>
  2. include <iostream>
  3. include <list>
  4. include <vector>

using namespace std; int main( ) {

  short v[] = { 1, 2, 3, 4, 5, 6 };
  vector<short> v1( v,v + sizeof( v ) / sizeof( v[0] ) );
  vector<short> v2( v1 );
  if( v1 == v2 )
     cout << "The vectors are equal" << endl;
  else
     cout << "The vectors are not equal"  << endl;
  reverse( v2.begin(), v2.end() );
  if( v1 == v2 )
     cout << "The vector and reversed vector are equal" << endl;
  else
     cout << "The vector and reversed vector are not equal" << endl;

}


 </source>


Compare two containers

<source lang="cpp">

  1. include <iostream>
  2. include <vector>

using namespace std; void show(const char *msg, vector<char> vect); int main() {

 vector<char> v;
 vector<char> v2(v);
 if(v == v2) 
    cout << "v and v2 are equivalent.\n\n";
 cout << "Insert more characters into v and v2.\n";
 v.insert(v.end(), "D");
 v.insert(v.end(), "E");
 v2.insert(v2.end(), "X");
 show("The contents of v: ", v);
 show("The contents of v2: ", v2);
 cout << "\n";
 if(v < v2) 
    cout << "v is less than v2.\n\n";
 v.insert(v.begin(), "Z");
 show("The contents of v: ", v);
 if(v > v2) 
    cout << "Now, v is greater than v2.\n\n";
 v2.erase(v2.begin());
 show("v2 after removing the first element: ", v2);
 vector<char> v3;
 v3.insert(v3.end(), "X");
 v3.insert(v3.end(), "Y");
 v3.insert(v3.end(), "Z");
 show("The contents of v3: ", v3);
 cout << "Exchange v and v3.\n";
 v.swap(v3);
 show("The contents of v: ", v);
 show("The contents of v3: ", v3);
 v.clear();
 if(v.empty())  
    cout << "v is now empty.";
 return 0;

} void show(const char *msg, vector<char> vect) {

 vector<char>::iterator itr;
 cout << msg << endl;
 for(itr=vect.begin(); itr != vect.end(); ++itr)
   cout << *itr << endl;

}


 </source>


Compare two vectors: !=

<source lang="cpp">

  1. include <iostream>

using std::cout; using std::cin; using std::endl;

  1. include <iomanip>

using std::setw;

  1. include <vector>

using std::vector; int main() {

  vector< int > integers1( 7 ); // 7-element vector< int >
  vector< int > integers2( 10 ); // 10-element vector< int >
  size_t i;
  
  for ( i = 0; i < integers1.size(); i++ ){
     cout << integers1[ i ];
  }
  for ( i = 0; i < integers2.size(); i++ ){
     cout << integers2[ i ];
  }
  cout << "\nEvaluating: integers1 != integers2" << endl;
  if ( integers1 != integers2 )
     cout << "integers1 and integers2 are not equal" << endl;
  return 0;

}

/* 

00000000000000000 Evaluating: integers1 != integers2 integers1 and integers2 are not equal

*/   
   
 </source>


vector assignment

<source lang="cpp">

  1. include <iostream>

using std::cout; using std::cin; using std::endl;

  1. include <iomanip>

using std::setw;

  1. include <vector>

using std::vector; int main() {

  vector< int > integers1( 7 ); // 7-element vector< int >
  vector< int > integers2( 10 ); // 10-element vector< int >
  size_t i;
  
  for ( i = 0; i < integers1.size(); i++ ){
     cout << integers1[ i ];
  }
  for ( i = 0; i < integers2.size(); i++ ){
     cout << integers2[ i ];
  }
  cout << "\nAssigning integers2 to integers1:" << endl;
  integers1 = integers2; // integers1 is larger than integers2
  // use equality (==) operator with vector objects
  if ( integers1 == integers2 )
     cout << "integers1 and integers2 are equal" << endl;
  return 0;

} /* 00000000000000000 Assigning integers2 to integers1: integers1 and integers2 are equal

*/        
   
   
 </source>