如何使用QVector at或operator []来获取指向元素的指针

Yas*_*azk 4 c++ qt

我很想得到一个指向QVector元素的指针,所以我可以在其他地方使用该对象,但是该at()方法给了我一个const T&值,并operator[]给了我一个T&值.

我很困惑如何使用这些来获取指针,以便我将使用相同的对象而不是使用复制构造函数.

Gys*_*cos 11

一个T&值不是一个副本,它是一个参考.

引用看起来很像指针:它们很轻,可以用来修改底层对象.只是,您使用与直接对象相同的语法(使用点而不是箭头),以及您可能希望在文章中查看的其他一些差异.

要编辑Vector中当前的对象,可以使用例如vector[i].action();.这将从向量内的对象调用action()方法,而不是副本.您也可以将引用移交给其他函数(前提是它们带有引用参数),它们仍然指向同一个对象.

您还可以从引用中获取对象的地址:Object* pObject = & vector[i];并将其用作任何指针.

如果你真的需要指向对象的指针,你也可以使用指针向量:QVector<Object*> vector; 但是,这需要你处理创建/破坏,你不需要使用Vector对象.

现在,如果你想要一个指向Vector本身的指针,那就行了 QVector<Object> *pVector = &vector;