可能重复:
Operator[][] overload
我看过互联网,但找不到这个问题的明确答案,所以我在这里。
我知道:operator[][]()
不是一个有效的运算符重载,但它是一种重载[] []运算符的方法(例如在vector<vector<typename>>
上使用)。
我需要这个,因为我正在做一个包含矢量矢量的包装类,我本来希望
答案 0 :(得分:7)
是的,但这取决于operator []
的返回类型。您可以返回自己支持operator []
的类型。
让我们说:
struct Matrix
{
vector<vector<int> > x;
vector<int>& operator[] (int i)
{
return x[i];
}
};
由于x[i]
返回vector
,您可以再次使用[]
,因为vector
有operator[]
。