gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:02:42 24 4
gpt4 key购买 nike

我很想得到一个指向 QVector 元素的指针,这样我就可以在别处使用该对象,但是 at() 方法给了我一个 const T& 值和 operator[] 给我一个 T& 值。

我对如何使用它们来获取指针感到困惑,以便我将使用相同的对象而不是使用复制构造函数。

最佳答案

A T& value 不是拷贝,它是 reference .

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

要编辑当前在 Vector 中的对象,您可以使用例如 vector[i].action(); .这将从 vector 内的对象调用 action() 方法,而不是在拷贝上。您还可以将引用交给其他函数(前提是它们采用引用参数),它们仍将指向同一个对象。

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

如果你真的需要指向对象的指针,你也可以使用指针的 vector :QVector<Object*> vector;但是,这需要您处理创建/销毁,而对于 Vector 对象则不需要。

现在,如果您想要指向 Vector 本身的指针,只需执行 QVector<Object> *pVector = &vector;

关于c++ - 如何使用 QVector at 或 operator[] 获取指向元素的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10665162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com