• Sábado 14 de Diciembre de 2024, 21:32

Autor Tema:  STL Vector no funciona  (Leído 1179 veces)

avis_phoenix

  • Miembro activo
  • **
  • Mensajes: 96
  • Nacionalidad: mx
    • Ver Perfil
STL Vector no funciona
« en: Martes 30 de Septiembre de 2008, 21:39 »
0
Debo ser yo seguramente el que no esta usando correctamente el vector, pero el problema es que cuando quiero agregarle un elemento a un vector que es global en la clase donde estoy(private), me marca el siguiente error (con try y caught):

Exception caught: vector::_M_range_check

Pero ya he estado buscando por donde y no encuentro el error, el programa que estoy haciendo lee un archivo xml y crea un automata finito no determinista (o determinista) y ejecuta las transiciones dadas.

cuando empiezo a leer el archivo leo los nombres de las letras para crear el alfabeto antes me agarraba bien con un ejemplo que tengo muy sencillo con una sola letra en el alfabeto, pero cuando puse otro me marcaba error al alojar la memoria (en new_allocator.h) y justo esto es en la linea 300:

alphabet.push_back(t);//<-Error con más de un elemento

anteriormente verifico que t si contenga algo
No sé a que se deba que se corrompe el vector.
luego intentando componerlo (sólo puse comentarios y deje de usar el operador [] y empece a usar at)
 ya estoy harto y cansado llevo mucho tiempo intentando componerlo, he buscado en google y este erro no es común
 :oops:

ayudaaaa  :hitcomp:
 P.D. trabajo en linux, en pantalla todavía no se muestra el resultado del automata, todo se ve en terminal

Aca el codigo:
http://www.geocities.com/platinium2000mx/automalpha.tar.gz
Para poder compilarlo se necesita:
gtkmm2.4
libglademm2.4
libxml++2.6
"La envidia en los hombres muestra cuán desdichados se sienten, y su constante atención a lo que hacen o dejan de hacer los demás, muestran cuánto se aburren." "Las religiones, como las luciérnagas, necesitan de oscuridad para brillar." "Los hombres vulgares han inventado la vida en sociedad porque les es más fácil soportar a los demás que soportarse a sí mismos." "Sólo es libre aquello que existe por las necesidades de su propia naturaleza y cuyos actos se originan exclusivamente dentro de sí." "La experiencia nos ha demostrado que a la persona no le resulta nada más difícil de dominar que su lengua." "La madurez del hombre es haber vuelto a encontrar la seriedad con la que jugaba cuando era niño." "Los monos son demasiado buenos para que el hombre pueda descender de ellos." "El hombre, en su orgullo, creó a Dios a su imagen y semejanza" "Lo que hacemos no es nunca comprendido, y siempre es acogido sólo por los elogios o por la crítica."

avis_phoenix

  • Miembro activo
  • **
  • Mensajes: 96
  • Nacionalidad: mx
    • Ver Perfil
Re: STL Vector no funciona
« Respuesta #1 en: Miércoles 1 de Octubre de 2008, 21:31 »
0
Revisandolo con detalle encontré el error en el heapsort (esta mal hecho)

Como nota de aprendizaje
No confies en escribir couts en lugares del programa y visualizarlos para saber si paso o no por ahi, eso me ha hecho perder mucho tiempo y buscar por lugares equivocados. mejor hay que aprender a usar el debuger (gdb en este caso)
"La envidia en los hombres muestra cuán desdichados se sienten, y su constante atención a lo que hacen o dejan de hacer los demás, muestran cuánto se aburren." "Las religiones, como las luciérnagas, necesitan de oscuridad para brillar." "Los hombres vulgares han inventado la vida en sociedad porque les es más fácil soportar a los demás que soportarse a sí mismos." "Sólo es libre aquello que existe por las necesidades de su propia naturaleza y cuyos actos se originan exclusivamente dentro de sí." "La experiencia nos ha demostrado que a la persona no le resulta nada más difícil de dominar que su lengua." "La madurez del hombre es haber vuelto a encontrar la seriedad con la que jugaba cuando era niño." "Los monos son demasiado buenos para que el hombre pueda descender de ellos." "El hombre, en su orgullo, creó a Dios a su imagen y semejanza" "Lo que hacemos no es nunca comprendido, y siempre es acogido sólo por los elogios o por la crítica."