J'ai cette déclaration d'un vecteur multidimensionnelVector initialisé avec la taille, impossible à effacer
std::vector< vector < vector <ofxImage> > > front_objects;
Puis-je l'envoyer à ma classe lors de sa création:
Catalog_object * temp = new Catalog_object(&front_objects, numTag);
Et puis j'effectuer les opérations suivantes :
Catalog_object::Catalog_object(vector< vector < vector <ofxImage> > > * _front_objects, int numTag) {
front_objects=_front_objects;
if (front_objects->size()<numTag+1) {
front_objects->resize(numTag+1);
}
}
Ce que je veux faire est de remplir la principale front_object s avec des vecteurs de ofxImages à partir des objets Catalog_, qui pourraient partager certains vecteurs de vecteurs d'ofxImages.
Le problème est que « parfois » le vecteur est initialisé avec les ordures et en essayant de le dégager avec
front_objects[numTag].resize(2);
le programme se bloque avec un EXC_BAD_ACCESS
Lors du redimensionnement avec Redimensionner(), shouldnt il soit rempli de vecteurs vides?
Merci
Marc
MISE À JOUR
J'ai essayé de faire comme ça, mais j'obtenir "membre de référence 'non initialisée Catalog_object :: front_objects'".
Catalog_object::Catalog_object(vector< vector < vector <ofxImage> > > & _front_objects, int numTag) { // CHANGED * FOR &
std::vector< vector < vector <ofxImage> > > & front_objects; // CHANGED * FOR &
front_objects=_front_objects;
if (front_objects.size()<numTag+1) {
front_objects.resize(numTag+1);
}
front_objects[numTag].resize(2);
}
std::vector< vector < vector <ofxImage> > > front_objects;
Catalog_object * temp = new Catalog_object(front_objects, numTag); // REMOVED &
commentaire Tangentielle. Ceci est vraiment un exemple canonique quand typedefs serait une bonne chose! –
Je suis un débutant C++, je vais vérifier typedefs – Marc
Je viens d'apprendre comment utiliser typedefs. Très facile et utile! http://www.functionx.com/cpp/keywords/typedef.htm – Marc