C++/Vector/vector compare — различия между версиями
Admin (обсуждение | вклад) м (1 версия: Импорт контента...) |
Admin (обсуждение | вклад) м (1 версия: Импорт контента...) |
(нет различий)
|
Текущая версия на 10:27, 25 мая 2010
Содержание
Checking If Two Containers Are Equal with == operator
#include <algorithm>
#include <iostream>
#include <list>
#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;
}
Compare two containers
#include <iostream>
#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;
}
Compare two vectors: !=
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <iomanip>
using std::setw;
#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
*/
vector assignment
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <iomanip>
using std::setw;
#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
*/