我有载体的载体,就像这样:如何让我的shared_ptr的指向特定地址的嵌套向量内
std::vector<std::vector<boost::shared_ptr<X> > > vOP;
我要指派另一boost::shared_ptr
上述嵌套vector
,然后计算/显示某些可视化。
这里是我的代码片段:
boost::shared_ptr<X> tempPtr;
if(num < vOP[refID].size()) // refID returns the ID number
{
tempPtr = vOP[refID].at(num);
ROS_INFO_STREAM("ADDRESS OF vOP: "<< vOP[refID].at(num)<<" for refID: "<<refID);
ROS_INFO_STREAM("&REFERENCE ADDRESS OF vOP: "<< &vOP[refID].at(num));
}
但我得到一个assertation失败错误为tempPtr
没有指向该嵌套vector
。
我的代码在为0时有效;但否则我的代码失败。 ROS_INFO_STREAM
的输出都是不同的地址。
有人可以向我解释这两个地址是什么意思?如何让我的指针指向正确的地址?
您应该编辑您的问题以包含'ros'标签,从而增加获得答案的机会。 – 2016-07-28 21:02:36
想一想,'num
谢谢!我现在加了它! – Greatgoing