我不知道该怎么做 - 请告诉我下面的代码有什么问题。我修改了我的代码以将其简化为最简单的术语。有一个带有一堆 MyNode 对象的 std::vector。第一步是获取对其中一个节点(Data m_data)的一个数据元素的常量引用 - 在下面的示例中,在插入第二个节点之前只有一个节点,如下所示:
const cv::Data& currData = m_nodesVector[currIndex].GetData();
MyNode node(...);
m_nodesVector.push_back(node);
在 vector::push_back 调用中,currData 的值发生了变化!!我只是不明白。向向量中插入新节点如何改变对第一个节点数据的值引用?!请注意,在“创建”第二个节点时该值不会改变 - 但在插入操作到 std::vector 时。我的意思是,我想 std::vector 可能会重新洗牌一些内存,但这不应该改变引用吗?
编译器 = VS 2012
多谢你们。非常感激。