TABLA EN C

Moderador: ivancp

Temas sobre programacion en C/C++ (no Visual C++)

TABLA EN C

Notapor juanillo1 » Dom Mar 06, 2011 8:15 am

Alguien me podria ayudar ha hacer una tabla donde pueda ir inseriendo nombres no repetidos? Soy novato en esto de programacion y ando un poco perdido! Grácias!
juanillo1
Novato
Novato
 
Mensajes: 1
Registrado: Sab Mar 05, 2011 3:06 pm


Re: TABLA EN C

Notapor ivancp » Dom Mar 06, 2011 3:38 pm

Hola,

Puedes utilizar lo que se llama una tabla hash, en la libreria estandar esta implementada con el nombre de map.
Un ejemplo:

Si quieres insertar estos elementos: (guardalos en un archivo input.txt se va a utilizar mas abajo)
Código: Seleccionar todo
  1. uno

  2. dos

  3. uno

  4. tres

  5. cinco

  6. cuatro

  7. cinco


Puedes usar el siguient codigo:
Código: Seleccionar todo
  1.  

  2. #include <map>

  3. #include <string>

  4. #include <iostream>

  5.  

  6. using namespace std;

  7.  

  8. int main(int argc, char *argv[])

  9. {

  10.     map<string,int> tabla;

  11.  

  12.     string input;

  13.  

  14.    //ingresando los datos

  15.     while(cin>>input)

  16.       tabla[input] = tabla[input] + 1;

  17.  

  18.    // mostrando las entradas

  19.    cout<<"Lista de elementos:\n";

  20.  

  21.    for(map<string,int>::iterator i = tabla.begin(); i  != tabla.end() ; i++)

  22.    {

  23.       cout<<i->first<<" : "<<i->second<<endl

  24.    }

  25. }

  26.  



No lo he compilado y probado (por que estoy en una cabia publica), pero debe salir algo como esto al invocar al ejecutable desde la linea de comando.

Código: Seleccionar todo
  1.  

  2. c:\cpp\prueba.exe < input.txt

  3. uno : 2

  4. dos : 1

  5. tres : 1

  6. cuatro : 1

  7. cinco : 2

  8.  



Si tienes algun comentario/duda solo pregunta.

Saludos.
Imagen @latindev | Mi Blog
Por favor lee las reglas del foro
Avatar de Usuario
ivancp
Colaborador
Colaborador
 
Mensajes: 680
Registrado: Jue Sep 06, 2007 12:58 pm



    

Volver a C/C++

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 0 invitados