gpt4 book ai didi

c++ - 重载运算符 []

转载 作者:行者123 更新时间:2023-11-30 02:10:28 27 4
gpt4 key购买 nike

我有一个任务是用 C++ 编写一个类矩阵,并且有一个条件,要覆盖矩阵的运算符 [],所以如果我有一个名为 Matrix 的矩阵和这个“Matrix[0][0]”,我必须取它的第一个元素,在它的第一行。我用二维动态数组和模板 (T **matrix) 表示矩阵。你能帮帮我吗?

PS:我用这个方法来创建二维数组:

template <class T>
T ** Matrix<T>::createMatrix(unsigned int rows, unsigned int cols)
{
T** matrix = new T*[rows];
for (unsigned int i = 0; i < rows; i++) {

matrix[i] = new T[cols];

}
return matrix;
}

最佳答案

我假设matrix是Matrix的T**类型的成员变量。

template< class T >
T* operator []( Matrix<T>& m, unsigned int row )
{
// maybe remember rows and assert(row<rows);
return m.matrix[ row ];
}

现在你可以这样写

Matrix<T> m(50,9999);
m[42][1337];

访问第 42 行中的元素 1337。

关于c++ - 重载运算符 [],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4538239/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com