2

重複の可能性:
Operator[][] オーバーロード

私はインターネットを見てきましたが、この質問に対する決定的な答えを見つけることができないので、ここにいます.

私はそれを知っています:operator[][]()は有効な演算子のオーバーロードではありませんが、 [][] 演算子をオーバーロードする方法です (vector<vector<typename>>たとえば、 on で使用されます)。

ベクトルのベクトルを含む一種のラッパー クラスを実行しているので、これが必要です。

4

1 に答える 1

8

はい。ただし、 の戻り値の型によって異なりoperator []ます。をサポートする型を返すことができますoperator []

まあ言ってみれば:

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

x[i]を返すので、があるので再度vector使用できます。[]vectoroperator[]

于 2012-06-19T19:58:03.310 に答える