图形实现c++与无大小的向量

Graph implementation C++ with unsized vectors

本文关键字:向量 实现 c++ 图形      更新时间:2023-10-16

我想画一个向量图。问题是,我不知道向量的大小,它是作为输入给我的。我正在考虑制作这样一个节点:

typedef struct node{
   my_vector v[];
   node * next;
}

我可以创建一个节点与向量在行my_vector v[]; ?我对c++还是个新手

另外,我真的不知道如何实现一个图,但它与实现一个列表有什么不同吗?

你可以这样做:

template<typename T>
struct node{
   std::vector<T> v;
   node * next;
}

现在您可以创建包含任何类型数据的node,如下所示:

node<int> myintnode;
node<double> mydoublenode;

我可以创建一个节点与向量在行my_vector v[];

如果需要在运行时决定vector的大小,则不能使用这种声明。您必须自己分配内存,或者使用std::vector更好。

另外,我真的不知道如何实现一个图,但它与实现一个列表有什么不同吗?

一个列表是一个非常简单的图,所以有一些理论的相似之处。在实践中,实现是不同的,这取决于你将如何处理这个图。有很多实现图形的方法,也有很多关于这个主题的书籍和图书馆。我建议查看一下简单图实现的数据结构介绍。例如,邻接列表和邻接矩阵是一些最常见的图表示。Boost中也有图形库,但它可能是多余的。