¿Ayuda c++, algoritmo para hacer una búsqueda por filtro?

Bueno, mucho gusto, soy estudiante de programación y me encontré con este problema que no se cómo solucionar. Tengo un programa que muestra un vector de objetos con 2 strings entre los atributos, me gustaría programar una búsqueda por filtro, es decir, que al ir ingresando letras en la barra de búsqueda vaya eliminando de la lista los objetos donde no las encuentre. El vector tiene que ser bastante grande. Espero que alguno de ustedes me pueda dar una idea de cómo pensar el código, tenía un par de ideas pero no funcionó como esperaba. Muchas gracias.

Comments

  • Hola:

    Por un lado, tenes que tener el vector que contenga las letras a ingresar, por otro lado un vector de structs, uniones o clases que tengan el dato a comparar, y recorriendo los structs o lo que sea, cuando strstr(string1, string2) del archivo de cabecera string.h o similar, devuelva un valor no cero, entonces listar los que tienen coincidencias.

    a medida que vas aumentando el tamaño de la cadena, entonces el proceso se repite, se genera una nueva lista hasta que la presicion sea la deseada.

    Esto en Visual, con un ibjeto tipo textbox se hace en el change, es decir que cada vez que cambia el contenido, se hace el proceso, pero se puede hacer con un do while, que se interrumpa cuando se ingrese el caracter char(13), limpiando el listado y llenandolo de vuelta cada ciclo de acuerdo a como este la cadena donde se ingresan las letras de referencia para la busqueda.

    Dios te bendiga

    Saludos

    Antonio

  • Lo que buscas se llama algoritmo de busqueda incremental de cadenas. En internet puedes encontrar mucha información aunque reconozco que puede ser un poco complicado porque se suele dar un algoritmo explicado con matematicas o palabras, eso no siempre es facil de ver.

    Buscando un pequeño ejemplo para pasartelo vi esta web http://amjith.blogspot.com/2009/05/algorithm-for-i... que trae un codigo en C++ y creo que es lo que buscas.

    Suerte!!

    PD: creo que implementandolo con arboles quedaría mejor ;) (aunque solo es mi humilde opinion)

Sign In or Register to comment.