我很想得到一个指向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;
| 归档时间: |
|
| 查看次数: |
11396 次 |
| 最近记录: |