我需要将基本的图形算法从 C "转换"到 C 和 C++ 的混合体,我在其中使用 new 运算符。 我需要帮助"翻译"我在 yale223 笔记上找到的这个嵌套结构的结构。 我将不胜感激任何帮助。
struct graph {
int n; /* number of vertices */
int m; /* number of edges */
struct successors {
int d; /* number of successors */
int len; /* number of slots in array */
int isSorted; /* true if list is already sorted */
int list[]; /* actual list of successors starts here */
} *alist[];
};
g = malloc(sizeof(struct graph) + sizeof(struct successors *) * n);
assert(g);
不确定你想要什么,但以下可能会有所帮助,使用std::vector
:
struct successors {
std::vector<int> list; /* actual list of successors starts here */
// int d; /* number of successors */ // Already stored in vector
int len; /* number of slots in array */
bool isSorted; /* true if list is already sorted */
};
struct graph {
int n; /* number of vertices */
int m; /* number of edges */
std::vector<successors> alist;
};