使用嵌套结构将 malloc 转换为 c++



我需要将基本的图形算法从 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;
};

相关内容

  • 没有找到相关文章

最新更新