从对指针向量的引用访问元素
Accessing element from reference to vector of pointers
我有一个指针向量的引用,如下:
std::vector<Object*>& objects;
如何从这个向量访问对象?
只要您不尝试访问向量外的元素,您就可以使用 []
对其进行索引...或者为了更安全,如果您需要对每个元素做一些事情,您可以使用基于范围的 for 循环:
for(auto& object : objects)
object->someFunction();
objects
是引用与问题没有直接关系——您使用引用的方式与对同一对象使用简单标识符的方式完全相同。
因此,您可以通过任何常规方式 select 向量的单个元素,例如通过索引、迭代器或其他方式。结果是向量的元素类型,即 Object *
:
Object *o = objects[42];
您可以通过解引用运算符(一元*
)访问o
指向的对象。或者,您可以使用间接访问运算符 (->
) 来访问其方法和字段:
(*o).do_something();
int i = o->an_int;
我有一个指针向量的引用,如下:
std::vector<Object*>& objects;
如何从这个向量访问对象?
只要您不尝试访问向量外的元素,您就可以使用 []
对其进行索引...或者为了更安全,如果您需要对每个元素做一些事情,您可以使用基于范围的 for 循环:
for(auto& object : objects)
object->someFunction();
objects
是引用与问题没有直接关系——您使用引用的方式与对同一对象使用简单标识符的方式完全相同。
因此,您可以通过任何常规方式 select 向量的单个元素,例如通过索引、迭代器或其他方式。结果是向量的元素类型,即 Object *
:
Object *o = objects[42];
您可以通过解引用运算符(一元*
)访问o
指向的对象。或者,您可以使用间接访问运算符 (->
) 来访问其方法和字段:
(*o).do_something();
int i = o->an_int;