C++向结构添加指针



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

struct Uczestnik{
    enum Plec{K,M,W};
    Uczestnik(Plec p) : plec(p) {}
    Plec plec;
};

我需要使类列表像带有双向指针的列表一样工作,并且元素是 Uczestnik。

我不知道该怎么做,因为struct Uczestnik没有像Uczestnik* prev,next;这样的指针

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

很简单,创建一个将Uczestnik作为成员变量的类。

struct UczestnikList {
    UczestnikList *next;
    UczestnikList *prev;
    Uczestnik val; // or Uczestnik* val;
};

现在,您可以使用UczestnikList并遍历它。

另请注意,val可以是嵌入式成员变量或指针(Uczestnik* val),具体取决于您希望如何实现列表。

当你对C++更加熟悉时,你可以使用 STL 库来实现这一点,比如 std::list 中的双向链表。

现代的方式是这样的

  template<Data> struct node
  {
      struct node *next;
      struct node *previous;
      Data data;
  }

现在用你的结构体 UczzestnikList 实例化它。

最新更新