结构中动态数组的迭代器
Iterator on dynamic array in a struct
如何在动态数组(在结构中)上创建迭代器?
您的动态数组,由类型 struct _Lista
表示,不 包含 "elements of any type"。至少不是直接的。它仅包含 void *
类型的元素。如果您将类型 iterator
相应地更改为 double 指针,几乎所有您编写的内容都会起作用:
typedef void **iterator;
但是请注意,这个迭代器实现有一个严重的缺陷:它不包含任何关于列表边界的信息。如果您确保在最后一个有效元素之后(也可能在第一个之前)有一个标记值,那可能没问题,但否则您将需要一个比一个指针更复杂的数据结构。
如何在动态数组(在结构中)上创建迭代器?
您的动态数组,由类型 struct _Lista
表示,不 包含 "elements of any type"。至少不是直接的。它仅包含 void *
类型的元素。如果您将类型 iterator
相应地更改为 double 指针,几乎所有您编写的内容都会起作用:
typedef void **iterator;
但是请注意,这个迭代器实现有一个严重的缺陷:它不包含任何关于列表边界的信息。如果您确保在最后一个有效元素之后(也可能在第一个之前)有一个标记值,那可能没问题,但否则您将需要一个比一个指针更复杂的数据结构。