代码之家  ›  专栏  ›  技术社区  ›  Daniel Schaffer

矩阵/向量首选项:内部返回复制或转换?

  •  0
  • Daniel Schaffer  · 技术社区  · 6 年前

    快速了解社区的总体偏好:当处理向量(数学,而不是STL)和矩阵等对象时,您是否更喜欢以下库:

    A) 不更改对象,而是返回副本:

    Vec2 Vec2::Add(float x, float y) {
        return Vec2(this.x + x, this.y + y);
    }
    

    B) 更改对象并返回引用:

    Vec2& Vec2::Add(float x, float y) {
        this.x += x;
        this.y += y;
        return (*this);
    }
    

    那么,意见呢?

    2 回复  |  直到 12 年前
        1
  •  1
  •   Reed Copsey    15 年前

    这取决于语言以及它将如何与主流框架集成。

    如果处理大型矩阵,我倾向于使用引用,因为复制和构造的开销太大了。

        2
  •  0
  •   Keith Nicholas    15 年前

    对于值对象,通常最好返回一个新值。

    在表现上可能有,也可能没有太大差异