访问指向对象指针向量的指针的第一个元素?
Access first element of pointer to vector of object pointers?
我声明了对shared_ptr向量的shared_ptr,就像这样...
std::shared_ptr<std::vector<std::shared_ptr<my_obj_t>>> vec =
std::make_shared<std::vector<std::shared_ptr<my_obj_t>>>();
我的问题是我需要访问向量内部使用的数组中的第一个元素。在将其更改为对象shared_ptr之前,它只是一个对象,我使用了 data((。
但是现在有了 shared_ptr 的向量,我不确定如何访问第一个元素,以便我可以为其添加偏移量并返回 my_obj_t 指针。
我正在尝试使用类似的东西
(my_vec->data() + offset)
。其中 func 需要一个指向 my_obj_t 数组的指针。
思潮?
更新:在我使用它之前...
std::shared_ptr<std::vector<my_obj_t>> vec =
std::make_shared<std::vector<my_obj_t>>();
我会通过以下方式访问它
(vec->data() + offset)
获取对指向my_obj_t
的引用offset
*my_vec->at(offset)
任何地方都没有my_obj_t
数组
std::make_shared<std::vector<std::shared_ptr<my_obj_t>>>()
这将构造一个shared_ptr
s 的空向量。
我的问题是我需要访问所用数组中的第一个元素 内部由向量。
由于向量是空的,因此您想象的内部数组可能还不存在。 因此,无法访问它的第一个元素。 在尝试使用元素之前,您必须添加它们。
克里斯显然没有来得及回答,因为它是最干净的,这就是我使用的。
(*my_vec)[offset]->get()
相关文章:
- 如何将指针从一个void函数传递到另一个C++
- 如何在没有数据拷贝的情况下从指针创建一个Eigen VectorXd对象
- 为什么它只打印双链接列表的第一个值,而我的程序却崩溃了
- std::find,返回所有找到的值的替代方法,而不仅仅是存在重复的向量的第一个值
- 将指向给定子类的指针从一个向量复制到另一个向量
- C++为 void 指针分配一个字符串
- 如何仅读取文本文件中的第一个值
- 在C++中,如何在第一个"system()"结束后执行第二个"system()"?
- 查找不在标准中的第一个值::设置<int>最小-最大值
- C++:忽略第一个 cin.ignore 之后的输入
- 如何利用指针从一个函数到另一个函数?
- 如何将所有指针从一个向量移动到另一个向量?
- 在C++中打印多个矢量的第一个值
- C++去除前x个元素的有效方法,在不改变向量大小的情况下将第x+1个元素推到第一个
- C++第一个cout将不会打印
- 我们可以在第一个else-if条件结束后使用另一个else-if条件吗
- OpenGL:第二个VBO破坏了第一个VBO
- 为什么第一个Dynamic_cast没有投射到基类?
- OpenGL 2D游戏只绘制第二个精灵纹理而不是第一个
- 删除指针作为 std::map 的第一个键