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