gpt4 book ai didi

c++ - 二维矩阵和重载运算符()/丑陋的语法

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:09:06 24 4
gpt4 key购买 nike

我在我的一个项目中使用二维矩阵。这类似于 C++ FAQ Lite 中的建议.

巧妙的是你可以像这样使用它:

int main()
{
Matrix m(10,10);
m(5,8) = 106.15;
std::cout << m(5,8);
...
}

现在,我有一个由顶点组成的图,每个顶点都有一个公共(public)(只是为了简化示例)指针,指向上面的二维矩阵。现在我确实有一个非常丑陋的语法来访问它。

(*sampleVertex.some2DTable)(0,0) = 0; //bad
sampleVertex.some2DTable->operator()(0,0) = 0; //even worse...

可能由于我对运算符重载缺乏经验,我在这里遗漏了一些语法糖。有更好的解决方案吗?

最佳答案

  1. 考虑使用引用而不是指针(前提是不能为 null 并且可以在构造函数中初始化)。
  2. 考虑为返回 2D 矩阵引用的顶点创建 getter 或矩阵包装类的实例(前提是它不能为 null)。

    sampleVertex.some2DTable()(0,0) = 0;
    sampleVertex.some2DTableWrap(0,0) = 0;

然而,对我来说,证明经历所有的麻烦似乎不是问题。

关于c++ - 二维矩阵和重载运算符()/丑陋的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/681746/

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