如何重载下标运算符 [] 以引用 2d STL 数组?
How to overload subscript operator [] to reference 2d STL array?
我正在尝试为我的类创建一个重载运算符,我的类包含一个 2d 数组容器。我想按如下方式使用运算符:fooClass a; a[i][j] = 4; 我不想像 a[i, j]、a(i, j( 那样使用它,也不想调用函数来输入或输出元素。可能吗?
链接调用不起作用,因为第一个返回指向数组的指针,第二个应该返回数组中的一个元素,即浮点数。
我的类看起来像这样:
class foo
{
public:
foo();
~foo();
foo& operator=(const foo&rhs);
foo& operator=(const foo&&rhs);
foo& operator=(std::initializer_list<std::initializer_list<float>> il);
friend std::ostream& operator<<( std::ostream& os, const foo&rhs);
std::array<float, 3>& operator[](const int & rhs); <<<<HERE<<<< What should it return?
private:
std::array<std::array<float, 3>, 3> matrix;
};
int main()
{
foo a;
a = {{1,2,3},{4,5,6},{7,8,9}};
a[1][2] = 13;
cout << a[1][2] << endl;
return(0);
}
我的问题是,如何做到这一点,函数..... operator[](const int & rhs);
返回什么?
仅供参考,我没有直接使用数组容器,因为我正在实现其他功能,我也在做矩阵列主要。
这不行吗?
std::array<float, 3>& operator[](const int & rhs) {
return matrix[rhs];
}
相关文章:
- 将对象数组的引用传递给函数
- 2D数组来自文本输入,中间有空格
- 将值指定给向量(2D)的向量中的某个位置
- 什么时候在C++中返回常量引用是个好主意
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 何时在引用或唯一指针上使用移动语义
- 如何在c++中使用引用实现类似python的行为
- 如何引用 2D 指针?
- 如何重载下标运算符 [] 以引用 2d STL 数组?
- 对通过引用传递的 2d 向量进行排序
- 无法用2D矢量成员引用对象
- 通过引用调用类对象的 2D 数组
- 您不能通过双指针引用 2d 数组吗?
- 在 C++ 中通过引用传递结构的 2D 数组
- C++:在重载 ostream >> 时引用 2D 数组元素时崩溃
- 为什么我们使用双指针来引用在堆上分配的 2D 数组
- 如何正确引用2D阵列
- 2d矢量类,如何引用
- C++将 2D 数组(由 uniqe_ptr 引用)合并为 3D 数组
- 通过引用传递2D矢量