运算符重载与函数调用的性能

Muk*_*pta 1 c++ operator-overloading

让我们假设我创建自己的vector类,如下所示:

<template class T>
class Vector {
private:
  void** ptr;
  // More functions implementing the custom vector
public:
  T& operator[](int iIndex) const {
    return *(T*)ptr[iIndex];
  }
  T& Item(int iIndex) const {
    return *(T*)ptr[iIndex];
  }
}
Run Code Online (Sandbox Code Playgroud)

比方说,我有一个Vector<someClass> v.严格地说,性能方面的哪一个更快地访问向量的元素.

  1. v.Item(i)
  2. v[i]

Bat*_*eba 7

v[i]仅仅是语法糖v.operator[](i).

在性能上没有差别,因为在所有其他方面具有不同名称的两个函数之间的性能没有差异.