【发布时间】:2012-06-21 22:22:20
【问题描述】:
我在互联网上查看过,但找不到这个问题的明确答案,所以我在这里。
我知道:operator[][]() 不是有效的运算符重载,但它们是重载 [][] 运算符的一种方式(例如用于 vector<vector<typename>>)。
我需要这个,因为我正在做一种包含向量向量的包装类,我会喜欢的
【问题讨论】:
我在互联网上查看过,但找不到这个问题的明确答案,所以我在这里。
我知道: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[]。
【讨论】: