Не съм сигурен какво да правя с това - моля, кажете ми какво не е наред с кода по-долу. Модифицирах кода си, за да го намаля до най-простите термини. Има std::vector с куп MyNode обекти. Първата стъпка е да получите постоянна препратка към един от елементите на данни на един от тези възли (Data m_data) - в примера по-долу има само един възел, преди да бъде вмъкнат 2-ри възел, както се вижда по-долу:
const cv::Data& currData = m_nodesVector[currIndex].GetData();
MyNode node(...);
m_nodesVector.push_back(node);
Точно при извикването на vector::push_back, стойността на currData се променя!! Просто не го разбирам. Как вмъкването на нов възел във вектора може да промени препратката към стойността към данните на първия възел?!! Обърнете внимание, че стойността не се променя при "създаване" на 2-ри възел - но при операция за вмъкване в std::vector. Искам да кажа, предполагам, че std::vector може да размести малко памет, но това не трябва да променя препратката, нали??
Компилатор = VS 2012
Благодаря момчета. Оценявам го.