Sezione dedicata agli algoritmi di ordinamento, merging e operazioni correlate. Tutti gl algoritmi di questa sezione hanno due varianti. Una che usa l'operatore '<' per confrontare gli elementi, l'altra che usa una funzione o un functor chiamato comp.
5.5.4: merge
Usando merge() possiamo unire due sequenze ordinate in una. Passo dopo passo, i primi elementi delle due sequenze sono confrontati e il minore (o quello che soddisfa il criterio di ordinamento passato) viene messo nella sequenza di output.
Ad esempio:
#include<iostream>
#include<algorithm>
#include<vector>
#include<algo.h>
using namespace std;
void dump(const vector<int>& v) {
vector<int>::const_iterator it = v.begin();
while (it != v.end()) {
cout << *it++ << ' ';
}
cout << endl;
}
int main() {
vector<int> v1(6);
iota(v1.begin(), v1.end(), 0);
dump(v1);
vector<int> v2(10);
iota(v2.begin(), v2.end(), 0);
dump(v2);
vector<int> result(v1.size() + v2.size());
merge(v1.begin(), v1.end(), v2.begin(), v2.end(), result.begin());
dump(result);
}
Nessun commento:
Posta un commento