У меня есть это объявление многомерного вектора
std::vector< vector < vector < ofxImage > > > front_objects;
Затем я отправляю его своему классу при его создании:
Catalog_object * temp = new Catalog_object(&front_objects, numTag);
И затем я выполняю следующее:
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);
}
}
То, что я хочу сделать, это заполнить главные front_objects векторами ofxImages из объектов Catalog_objects, которые могут совместно использовать некоторые векторы векторов ofxImages.
Проблема в том, что "иногда" вектор инициализируется с мусором, и при попытке очистить его с помощью
front_objects[numTag].resize(2);
программа аварийно завершает работу с EXC_BAD_ACCESS
При изменении размера с помощью resize (), не должен ли он быть заполнен пустыми векторами?
Спасибо
Марк
ОБНОВЛЕНИЕ
Я пытался сделать так, но яполучить "неинициализированный ссылочный член '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 &