gpt4 book ai didi

c++ - 为第三种图书馆类型添加成员字段

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:12:44 25 4
gpt4 key购买 nike

我正在处理一个包含如下类型(让我们说矩形)的库:

namespace some_lib{
struct rectangle{
int x;
int y;
int width;
int height;
};
}

我有一个这个矩形的 vector (非常大的 vector 可能是 10^9 矩形),我想计算这个矩形的面积并在程序的许多地方使用它。

我当然想计算一次。所以我应该把它存放在某个地方。我无法编辑结构。我建议了这个解决方案:

namespace my_own_program{
struct rectangle_wrapper{
some_lib::rectangle rect;
int area;
operator some_lib::rectangle() const { return rect; }
};
}

现在我可以将区域存储在这个结构中,如果我想将 vector 传递给库以对其进行一些处理,我必须在将其复制到另一个 vector 时对其进行转换。

我觉得这个方法很垃圾。我解决了计算领域的问题,但每次我需要在库中处理它时也进行了转换,这似乎很糟糕。

我的问题:

我怎样才能以更好的方式实现这一点?

最佳答案

好吧,如果您坚持使用该库并且必须多次传递 vector ,那么我建议创建一个“阴影 vector ”来保存索引 i 处每个矩形 i 的面积。不过,这取决于 vector 的使用方式。如果您的客户流失率很高,那么这显然不是正确的方法,但是无论如何您一开始都不应该使用 vector 。

您可以将这两个 vector 包装在一个自定义类中,您可以在代码中使用该类来访问矩形并将 vector 传递给库。

关于c++ - 为第三种图书馆类型添加成员字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38329567/

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