所以,我正在尝试制作一个向量图。问题是,我不知道向量的大小,它是作为输入提供给我的。我正在考虑制作一个这样的节点:
typedef struct node{
my_vector v[];
node * next;
}
我可以创建一个带有矢量的节点my_vector v[];
吗?我真的是 C++ 新手
另外,我真的不知道如何实现图表,但它与实现列表有什么不同吗?
我可以使用 my_vector v[] 行中的向量创建一个节点吗?
如果你需要在运行时决定向量的大小,你不能使用这种声明。您必须自己分配内存,或者更好的是使用std::vector
.
另外,我真的不知道如何实现图表,但它与实现列表有什么不同吗?
列表是一个非常简单的图表,因此在理论上存在一些相似之处。在实践中,实现会有所不同,取决于您将如何处理图表。有很多方法可以实现图,并且有很多书籍和图书馆都在处理这个主题。我建议研究对简单图形实现的数据结构的任何介绍。例如,邻接列表和邻接矩阵是一些最常见的图形表示。Boost中也有图形库,但它可能会有点矫枉过正。
你可以这样做:
template<typename T>
struct node{
std::vector<T> v;
node * next;
}
现在您可以创建node
包含任何类型数据的 s,如下所示:
node<int> myintnode;
node<double> mydoublenode;