所以,我正在尝试制作矢量图。 问题是,我不知道向量的大小,它是作为输入给我的。 我正在考虑制作一个节点:
typedef struct node{
my_vector v[];
node * next;
}
我可以创建一个带有向量my_vector v[];
的向量的节点吗?我是c ++的新手
另外,我真的不知道如何实现图表,但它与实现列表不同吗?
答案 0 :(得分:0)
你可以这样做:
template<typename T>
struct node{
std::vector<T> v;
node * next;
}
现在您可以创建包含任何类型数据的node
,如下所示:
node<int> myintnode;
node<double> mydoublenode;
答案 1 :(得分:0)
我可以使用向量my_vector v [];
创建一个带有向量的节点
如果您需要在运行时确定矢量大小,则不能使用此类声明。您必须自己分配内存,甚至更好,使用std::vector
。
另外,我真的不知道如何实现图表,但它与实现列表不同吗?
列表是一个非常简单的图表,因此存在一些理论相似之处。在实践中,实现方式不同,取决于您将对图表执行的操作。有许多方法可以实现图形,并且有许多书籍和图书馆可以处理这个主题。我建议研究简单图形实现的数据结构的任何介绍。例如,Adjacency Lists和Adjacency Matrix是一些最常见的图表表示。还有graph library in Boost,但它可能是一种过度杀伤。