C ++双下标运算符重载

时间:2012-06-19 19:56:57

标签: c++ operator-overloading

  

可能重复:
  Operator[][] overload

我看过互联网,但找不到这个问题的明确答案,所以我在这里。

我知道:operator[][]()不是一个有效的运算符重载,但它是一种重载[] []运算符的方法(例如在vector<vector<typename>>上使用)。

我需要这个,因为我正在做一个包含矢量矢量的包装类,我本来希望

1 个答案:

答案 0 :(得分:7)

是的,但这取决于operator []的返回类型。您可以返回自己支持operator []的类型。

让我们说:

struct Matrix
{
   vector<vector<int> > x;
   vector<int>& operator[] (int i)
   {
      return x[i];
   }
};

由于x[i]返回vector,您可以再次使用[],因为vectoroperator[]