Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con typedef std::vector<sf::Vector2i> FramesCoords

Estas en el tema de Problema con typedef std::vector<sf::Vector2i> FramesCoords en el foro de C/C++ en Foros del Web. Buenas. Estoy tratando de acceder al miembro 'X' de sf::Vector2i pero el Codeblocks al compilar me da este fallo: error: FrameCoords no tiene un miembro ...
  #1 (permalink)  
Antiguo 06/11/2013, 13:35
 
Fecha de Ingreso: septiembre-2012
Mensajes: 38
Antigüedad: 11 años, 7 meses
Puntos: 0
Problema con typedef std::vector<sf::Vector2i> FramesCoords

Buenas.
Estoy tratando de acceder al miembro 'X' de sf::Vector2i pero el Codeblocks al compilar me da este fallo: error: FrameCoords no tiene un miembro llamado X

Este es mi codigo resumido:

Código:
typedef std::vector<sf::Vector2i> FramesCoords;
FramesCoords *actualframecoords;

cout<<actualframecoords[2].x<<endl;
¿Hay alguna manera de acceder a esos miembros?

Última edición por ShotoReaper; 07/11/2013 a las 08:16
  #2 (permalink)  
Antiguo 10/11/2013, 06:51
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Problema con typedef std::vector<sf::Vector2i> FramesCoords

La variable 'actualframecoords' es un puntero a una lista de vectores, luego tienes que declarar un puntero a cada posicion para acceder a sus metodos:

Código C++:
Ver original
  1. typedef std::vector<sf::Vector2i> FramesCoords;
  2. FramesCoords *actualframecoords;
  3. std::vector <sf::Vector2i>::iterator itr;
  4.  
  5. itr = actualframecoords[2].begin();
  6. //o si quieres un elemento concreto de dentro de la lista a la que apuntas
  7. //itr = actualframecoords[2].begin() + offset;
  8.  
  9. cout << (*itr).x << endl;

Recuerda que tienes que comprovar que 'actualframecoords' no sea nulo.

Saludos
vosk

Etiquetas: vector
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:40.