C++双下标运算符重载

The*_*777 1 c++ operator-overloading

可能重复:
运算符[] []重载

我在互联网上看了但是找不到这个问题的明确答案所以我在这里.

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

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

Luc*_*ore 7

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

让我们说:

struct Matrix
{
   vector<vector<int> > x;
   vector<int>& operator[] (int i)
   {
      return x[i];
   }
};
Run Code Online (Sandbox Code Playgroud)

因为x[i]返回a vector,你可以[]再次使用因为vector有了operator[].