我的列表有双向指针问题,我有需要使用的结构:
struct Uczestnik{
enum Plec{K,M,W};
Uczestnik(Plec p) : plec(p) {}
Plec plec;
};
我需要制作类似列表的类List,使用双向指针,元素是Uczestnik。
我不知道如何执行此操作,因为struct Uczestnik
没有像Uczestnik* prev,next;
有没有办法在不编辑struct Uczestnik
的情况下实现?
答案 0 :(得分:1)
很简单,创建一个具有Uczestnik
作为成员变量的类。
struct UczestnikList {
UczestnikList *next;
UczestnikList *prev;
Uczestnik val; // or Uczestnik* val;
};
现在您可以使用UczestnikList
并遍历它。
另请注意,val
可以是嵌入式成员变量或指针(Uczestnik* val
),具体取决于您希望如何实现列表。
当您更熟悉C ++时,可以使用STL库,例如std::list中的双向链表。
答案 1 :(得分:-1)
现代的方式是这样的
template<Data> struct node
{
struct node *next;
struct node *previous;
Data data;
}
现在用你的struct UczzestnikList实例化它。