|
@@ -9,7 +9,8 @@ public:
|
|
Node* _prev, * _next;
|
|
Node* _prev, * _next;
|
|
Node() : _prev(nullptr), _next(nullptr) { _value = nullptr; }
|
|
Node() : _prev(nullptr), _next(nullptr) { _value = nullptr; }
|
|
Node(Node* prev, Node* next) : _prev(prev), _next(next) { _value = nullptr; }
|
|
Node(Node* prev, Node* next) : _prev(prev), _next(next) { _value = nullptr; }
|
|
- Node(Type& value, Node* prev = nullptr, Node* next = nullptr) : _prev(prev), _next(next) { _value = new Type(value); }
|
|
|
|
|
|
+ Node(Type& value, Node* prev = nullptr, Node* next = nullptr) : _prev(prev), _next(next) { _value = &value; }
|
|
|
|
+ ~Node() { _prev = _next = nullptr, _value = nullptr; }
|
|
Type& operator*() { return *_value; }
|
|
Type& operator*() { return *_value; }
|
|
};
|
|
};
|
|
|
|
|
|
@@ -24,9 +25,7 @@ public:
|
|
bool operator== (const iterator& it);
|
|
bool operator== (const iterator& it);
|
|
bool operator!= (const iterator& it);
|
|
bool operator!= (const iterator& it);
|
|
Type& operator*() { return **_ptr; }
|
|
Type& operator*() { return **_ptr; }
|
|
- Node* operator&() {
|
|
|
|
- return _ptr;
|
|
|
|
- }
|
|
|
|
|
|
+ Node* operator&() { return _ptr; }
|
|
};
|
|
};
|
|
|
|
|
|
private:
|
|
private:
|
|
@@ -35,6 +34,7 @@ private:
|
|
Node* tail = &dummy;
|
|
Node* tail = &dummy;
|
|
public:
|
|
public:
|
|
List();
|
|
List();
|
|
|
|
+ ~List();
|
|
public:
|
|
public:
|
|
iterator& operator[] (int index);
|
|
iterator& operator[] (int index);
|
|
List& operator+= (Type& value);
|
|
List& operator+= (Type& value);
|