Я не уверен, что с этим делать - скажите, пожалуйста, что не так с приведенным ниже кодом. Я изменил свой код, чтобы сократить его до простейших терминов. Есть std :: vector с кучей объектов MyNode. Первый шаг - получить постоянную ссылку на один из элементов данных одного из этих узлов (данные m_data) - в приведенном ниже примере есть только один узел до того, как будет вставлен второй узел, как показано ниже:
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
Спасибо ребята. Очень признателен.