У меня есть вектор векторов, например:Как мне сделать мою точку 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
.
Мой код работает, если refID
= 0; но в противном случае мой код не сработает. Оба вывода ROS_INFO_STREAM
выводят разные адреса.
Может кто-нибудь объяснить мне, что означают эти два адреса? Как сделать указатель на правильный адрес?
Вы должны отредактировать свой вопрос, указав тег 'ros', тем самым увеличив ваши шансы получить ответ. –
Просто мысль, 'num
Спасибо! Я добавил его сейчас! – Greatgoing