Advertisement
Guest User

BusNombres #Hashtable #ChupetinVasACaer #Gaaaa

a guest
May 27th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.77 KB | None | 0 0
  1. #include<iostream>
  2. #include<vector>
  3. #include<list>
  4. #include<fstream>
  5. #include<string>
  6. using namespace std;
  7. int obtenersumascii(string nombre) {
  8.     int sumatoria = 0;
  9.     for (int i = 0; i < nombre.size(); i++)
  10.     {
  11.         sumatoria += int(nombre.at(i));
  12.     }
  13.     return sumatoria;
  14. }
  15. void indexar(string archivo, vector<string> *nombrescarga) {
  16.     string registro;
  17.     ifstream arch(archivo);
  18.     while (getline(arch, registro, '\r'))
  19.     {
  20.         nombrescarga->push_back(registro);
  21.     }
  22.     arch.close();
  23. }
  24. void main() {
  25.     vector<string> *nombres = new vector<string>();
  26.     indexar("CSV_Database_of_First_Names.csv", nombres);
  27.     indexar("CSV_Database_of_Last_Names.csv", nombres);
  28.     vector<list<string>*>arr;
  29.     string aux;
  30.     int espacios = 1000;
  31.     for (int i = 0; i < espacios; i++)
  32.     {
  33.         arr.push_back(new list<string>());
  34.     }
  35.     for (int i = 0; i < nombres->size(); i++)
  36.     {
  37.         arr[obtenersumascii(nombres->at(i)) % espacios]->push_back(nombres->at(i));
  38.     }
  39.     for (int i = 0; i < espacios; i++)
  40.     {
  41.         if (arr[i]->size() != 0) {
  42.             cout << "espacio " << i << ": ";
  43.             for (list<string>::iterator it = arr[i]->begin(); it != arr[i]->end(); ++it) {
  44.                 cout << ' ' << *it;
  45.             }
  46.             cout << endl;
  47.         }
  48.     }
  49.     string nombreabus;
  50.     while (true)
  51.     {
  52.         cout << "Ingrese nombre a buscar: ";
  53.         cin >> nombreabus;
  54.  
  55.         if (arr[obtenersumascii(nombreabus) % espacios]->size() != 0) {
  56.             for (list<string>::iterator it = arr[(obtenersumascii(nombreabus) % espacios)]->begin(); it != arr[(obtenersumascii(nombreabus) % espacios)]->end(); ++it)
  57.                 if (*it == nombreabus) {
  58.                     cout << "espacio " << (obtenersumascii(nombreabus) % espacios) << ": ";
  59.                     cout << ' ' << *it;
  60.                     break;
  61.                 }
  62.             cout << endl;
  63.         }
  64.  
  65.     }
  66.  
  67.     cin.ignore(), cin.get();
  68. }
  69. //base de datos a descargar: https://www.sajari.com/resources/public-data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement