T*&返回类型到底是什么

汉城

我一直在研究向量实现,偶然发现了一条让我作为一个天真的 C++ 学习者感到困惑的行。

  1. 什么是T*&返回类型?
  2. 这仅仅是对指针的引用吗?
  3. 为什么这会有用呢?

代码链接:https : //github.com/questor/eastl/blob/56beffd7184d4d1b3deb6929f1a1cdbb4fd794fd/vector.h#L146

T*& internalCapacityPtr() EASTL_NOEXCEPT { return mCapacityAllocator.first(); }
  1. 它是对T作为模板参数传递的类型值的引用,或者更确切地说:
    1. 存在程序指定VectorBase<T>where实例TT可以是intstring或任何东西。
    2. T值作为向量内的一个项目存在。
    3. 可以创建指向该项目的指针: T* pointer = &this->itemValues[123]
    4. 然后,您可以创建对此指针的引用:https : //msdn.microsoft.com/en-us/library/1sf8shae.aspx?f=255&MSPPError=-2147217396
  2. 正确的
  3. 如果您需要“间接”使用一个值,那么使用指向指针的引用比使用指向指针的指针更便宜,因为编译器/CPU 不需要执行双间接引用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章