提振.图-有2个简单类和一个类-数据类型如何创建一个图

Boost.Graph - having 2 simple classes and one class - datatype how to create a graph?

本文关键字:一个 何创建 数据类型 创建 提振 简单 2个      更新时间:2023-10-16

所以我有一些简单的生成器类,非常类似于这样的数据类型(指针和长度)和这样的简单服装数据类型渲染器。如何创建一个图形,将帮助我传递生成的数据到我的渲染器?

目前我做这样的事情传递我的Char Ptr到数据生成器,然后结果渲染:

     renderer->renderCastedData(producer->updateData(CharPtr));

但是我很想看看是否有可能使用Boost Graph将数据表示类映射到某些类,作为某些函数的输入和该函数的其他一些类的返回?通常有一个"图形",我想能够调用Graph(MyInstanceOfMyDatatype),并有boost传递我的值(最小的复制)从一个图形元素到另一个?

这是一个非常简单的例子,所以它可能看起来图形是多余的,但我想有图形的自动值在我的类之间传递,例如,有一个生成器和N个渲染器-在这里我想图形来帮助我,例如,提供N-1个副本我的类到所有的渲染器除了第一。

似乎您正在寻找的是一个框架,它允许您将简单的生产者-消费者模式扩展为消费者网格,并由单个生产者同时提供。

这不是Boost。图提供了。提振。图是定义在一组图概念上的抽象过程(算法)的集合。它假设你已经拥有一个具有图形属性(顶点和边缘,以及它们上面的迭代器)的数据结构,并允许你应用它的算法(最大流量,最短距离等)。此外,它还附带了一些简单的图模型(邻接矩阵/列表),以防你还没有图类。

您的用例类似于Unix的tee命令。虽然我不知道您正在使用的特定库的tee实现,但实现一个TeeConsumer作为其所有注册子消费者的生产者通常并不太复杂。

这是我的一个同事写的一篇关于为Qt的QIODevice实现tee设备的博文,它可能会帮助你入门。