C ++添加指向结构的指针

时间:2017-01-15 00:03:14

标签: c++

我的列表有双向指针问题,我有需要使用的结构:

struct Uczestnik{
    enum Plec{K,M,W};

    Uczestnik(Plec p) : plec(p) {}
    Plec plec;
};

我需要制作类似列表的类List,使用双向指针,元素是Uczestnik。

我不知道如何执行此操作,因为struct Uczestnik没有像Uczestnik* prev,next;

这样的指针

有没有办法在不编辑struct Uczestnik的情况下实现?

2 个答案:

答案 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实例化它。