gpt4 book ai didi

c++ - boost::polygon 和 boost/geometry/geometries/polygon 区别?

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

我有两个问题:

1.) 我刚刚找到了 boost 1.53 Polygon 实现(在 http://www.boost.org/doc/libs/1_53_0/libs/polygon 上)并且想测试它,因为这些功能对于像我这样的 CAD 程序员来说非常棒。(但我没有得到模板重新初始化的东西“http://www.boost.org/doc/libs/1_53_0/libs/polygon/doc/voronoi_basic_tutorial.htm”)有没有人知道一个很好的教程,它解释了为什么需要这个模板重新初始化以及如何正确地进行初始化。或者没有它如何相处。

2.) 在寻找教程时,我发现很多网站都使用#include "boost/geometry/geometries/polygon..."这和#include "boost/polygon..."一样吗还是 boost 使用同一事物(多边形)的两种实现?或者它只是一个版本控制问题?

感谢任何能帮我解决这个问题的人。问候

最佳答案

Boost 中有两个库引入了它自己的多边形概念:

我不确定您所说的“模板重新初始化”是什么意思。也许您想说“模板特化”,有时需要将某些类调整为概念。

如果您想知道为什么要这样做。这允许调用在那些传递一些遗留类的对象的库中实现的算法。程序员必须将这些类调整为所需的概念之一,并且他可以在不转换为某个中间对象的情况下使用它们。

这与 C++ 中 traits 的使用方式非常相似。例如。当实现一些新的迭代器类时 std::iterator_traits<> template 可能专门用于定义此迭代器的特征。这将是程序员应该做的事情之一,以使这个新的迭代器类适应其中一个迭代器概念,例如前向迭代器概念。然后他可以在 STL 算法中使用它,例如 std::for_each() .

此处描述了这些库引入的多边形概念:

通常,库还提供已经适应受支持概念的类。例如。 Boost.Geometry 提供 boost::geometry::model::polygon<> ( http://www.boost.org/libs/geometry/doc/html/geometry/reference/models/model_polygon.html )

可能可以使某些类适应这两个概念并在两个库中使用它,但我不确定。

关于c++ - boost::polygon 和 boost/geometry/geometries/polygon 区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17348512/

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