1
« en: Viernes 10 de Marzo de 2006, 23:12 »
El siguiente codigo ordena un vector de N numeros aleatorios entre 0 y 10, y elimina los duplicados.
Quiza te sirve de ejemplo.
Saludos, mmoreno.
$ cat main.C
#include <iostream>
#include <vector>
#include <cassert>
#include <ctime>
#include <iterator>
#include <algorithm>
#include <utility>
#include <sstream>
using namespace std;
int main(int argc, char* argv[]) {
assert(argv[1]);
int n = 0;
(istringstream(argv[1]))>>n;
vector<int> v;
srand(time(0));
for (int i = 0; i < n; i++) v.push_back(rand()%10);
cout<<"Origen con duplicados: ";
copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
cout<<endl;
sort(v.begin(), v.end());
vector<int>::iterator it = unique(v.begin(), v.end());
cout<<"Sin duplicados: ";
copy(v.begin(), it, ostream_iterator<int>(cout, " "));
cout<<endl;
return 0;
}
$ c++ main.C
$ ./a.out 25
Origen con duplicados: 7 0 0 6 3 8 6 5 1 5 4 0 1 6 1 9 2 7 8 9 9 8 6 0 6
Sin duplicados: 0 1 2 3 4 5 6 7 8 9
$