STL - equal

Dal quinto capitolo di Designing Components with the C++ STL, di Ulrich Breymann. Algoritmi standard.

Sezione dedicata agli algoritmi che non modificano le sequenze su cui operano.

5.3.8: equal

confronta due container, con una variante che usa un predicato binario. É quindi molto simile a mismatch con la differenza fodnamentale che ritorna un booleano, sappiamo solo se le due sequenze sono uguali o no, ma non dov'é la prima differenza.

A seguire l'esempio visto per mismatch, riscritto per equal:

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

using namespace std;

int main() {
vector<int> v(8);
for (size_t i = 0; i < v.size(); ++i)
v[i] = 2 * i; // sorted sequence
set<int> s(v.begin(), v.end()); // initialize set with v

if (equal(v.begin(), v.end(), s.begin()))
cout << "No mismatch found." << endl;

++v[3]; // insert mismatch

// comparison for match with iterator pair ’where’
if (equal(v.begin(), v.end(), s.begin()) == false) {
cout << "Mismatching sequences detected." << endl;
}
}

Nessun commento:

Posta un commento