0

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

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

我可以创建一个带有矢量的节点my_vector v[];吗?我真的是 C++ 新手

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

4

2 回答 2

0

我可以使用 my_vector v[] 行中的向量创建一个节点吗?

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

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

列表是一个非常简单的图表,因此在理论上存在一些相似之处。在实践中,实现会有所不同,取决于您将如何处理图表。有很多方法可以实现图,并且有很多书籍和图书馆都在处理这个主题。我建议研究对简单图形实现的数据结构的任何介绍。例如,邻接列表邻接矩阵是一些最常见的图形表示。Boost中也有图形库,但它可能会有点矫枉过正。

于 2013-03-13T13:45:40.170 回答
0

你可以这样做:

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

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

node<int> myintnode;
node<double> mydoublenode;
于 2013-03-13T13:31:19.180 回答