如何在动态数组(在结构中)上进行迭代器?
答案 0 :(得分:0)
以类型struct _Lista
表示的动态数组,不不包含“任何类型的元素”。至少不是直接。它仅包含void *
类型的元素。如果将类型iterator
相应地更改为 double 指针,则您编写的几乎所有内容都将起作用:
typedef void **iterator;
但是,请注意,此迭代器实现存在严重缺陷:它不携带有关列表边界的任何信息。如果您确保在最后一个有效元素之后(也可能在第一个有效元素之前)有一个哨兵值,那可能没问题,但是否则,您将需要比一个指针还要复杂的数据结构。