Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <vector>
- #include <algorithm>
- #include <iostream>
- int main()
- {
- // Insieme di N numeri distinti
- // Verificare la presenza di duplicati
- // int -> 32 (-(2^16), 2^16 - 1)
- size_t N;
- std::cin >> N;
- // int v[N]; oppure int *v = new int[N]; (old school)
- std::vector<int> v(N);
- // Old school
- // for(size_t i = 0; i < N; i++) {
- // std::cin >> v[i];
- // }
- // Iteratore esplicito
- // 3 passi:
- // definisco un iteratore (l'indirizzo di memoria) del primo elemento del vector
- // finchè l'iteratore non corrisponde all'indizzo di memoria dell'ultimo elemento del vector allora non ho finito
- // Ogni passo incremento l'iteratore di 1 (scorro di sizeof(int) (se è un vector di interi)) la memoria
- // for(std::vector<int>::iterator it = v.begin(); it != v.end(); it++) {
- // std::cin >> *it;
- // }
- // // Parto dal primo elemento
- // std::vector<int>::iterator it = v.begin();
- // // finchè non arrivo alla fine
- // while(it != v.end()) {
- // // Faccio qualcosa con l'iteratore tipo leggerlo o scriverci sopra
- // std::cin >> *it;
- // // una volta fatto lo incremento per passare al prossimo elemento del vector
- // it++;
- // }
- // for(std::vector<int>::iterator it = v.begin(); it != v.end(); it++) {
- // std::cout << *it << ",";
- // }
- // Utilizzo dell'iteratore implicito
- for (int &x : v)
- {
- // prima volta x = v[0]
- // seconda volta x = v[1]
- // ...
- // finchè x != v.end()
- std::cin >> x;
- }
- std::vector<int> bucket;
- for (int x : v) // per ogni x dentro v // for (int i = 0; i < v.size; i++) { int x = v[i]; ... }
- {
- if(std::find(bucket.begin(), bucket.end(), x) != bucket.end()) {
- std::cout << "Duplicate: " << x << std::endl;
- } else {
- bucket.push_back(x);
- }
- }
- // i 0 1 2 3 4 5
- // v: 3 2 7 1 [3] 5
- // bucket: 3 2 7 1
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement