Руководство по стандартной библиотеке шаблонов STL

       

n1 and n2 are the


#include <stl.h> #include <iostream.h>

int n1[5] = { 1, 2, 3, 4, 5 }; int n2[5] = { 1, 2, 3, 4, 5 }; int n3[5] = { 1, 2, 3, 2, 1 };

int main () { pair <int*, int*> result; result = mismatch (n1, n1 + 5, n2); if (result.first == (n1 + 5) && result.second == (n2 + 5)) cout << " n1 and n2 are the same" << endl; else cout << "Mismatch at offset: " << (result.first - n1) << endl; result = mismatch (n1, n1 + 5, n3); if (result.first == (n1 + 5) && result.second == (n3 + 5)) cout << "n1 and n3 are the same" << endl; else cout << "Mismatch at offset: " << (result.first - n1) << endl; return 0; }



#include <stl.h> #include <iostream.h>

int main () { typedef vector<int> IntVec; IntVec v1 (10); IntVec v2 (v1.size ()); iota (v1.begin (), v1.end (), 0); iota (v2.begin (), v2.end (), 0); pair <IntVec::iterator, IntVec::iterator> result; result = mismatch (v1.begin (), v1.end (), v2.begin ()); if (result.first == v1.end () && result.second == v2.end ()) cout << " v1 and v2 are the same" << endl; else cout << "mismatch at index: " << (result.first - v1.begin ()) << endl; v2[v2.size()/2] = 42; result = mismatch (v1.begin (), v1.end (), v2.begin ()); if (result.first == v1.end () && result.second == v2.end ()) cout << "v1 and v2 are the same" << endl; else cout << "mismatch at index: " << (result.first - v1.begin ()) << endl; return 0; }



#include <stl.h> #include <iostream.h> #include <string.h>

bool str_equal ( const char* a_, const char* b_) { return ::strcmp (a_, b_) == 0 ? 1 : 0; }

const unsigned size = 5; char* n1[size] = { "Brett", "Graham", "Jack", "Mike", "Todd" };

int main () { char* n2[size]; copy (n1, n1 + 5, n2); pair <char**, char**> result; result = mismatch (n1, n1+ size, n2, str_equal); if (result.first == n1 + size && result.second == n2 + size) cout << "n1 and n2 are the same" << endl; else cout << "mismatch at index: " << (result.first - n1) << endl; n2[2] = "QED"; result = mismatch (n1, n1 + size, n2, str_equal); if (result.first == n2 + size && result.second == n2 + size) cout << "n1 and n2 are the same" << endl; else cout << "mismatch at index: " << (result.first - n1) << endl; return 0; }


Содержание раздела