C++双下标运算符重载

C++ double subscript operator overload

本文关键字:重载 运算符 下标 C++      更新时间:2023-10-16

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

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

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

我需要这个,因为我正在做一种包含向量的包装类,我本来想

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

比方说:

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

因为x[i]返回一个vector,所以你可以再次使用[],因为vector有一个operator[]