#include #include #include #include class Jump_List { private: struct Node; public: Jump_List() = default; void pop_front() { Node* tmp { first }; first = first->next; delete tmp; --count; } int size() const { return count; } void print(std::ostream& os) const { Node* current { first }; os << "size " << size() << ": "; while (current != nullptr) { os << current->value << " "; current = current->next; } os << std::endl; } private: struct Node { int value { }; Node* jump { }; Node* next { }; }; Node* first { }; int count { }; }; int main() { Jump_List l1 { }; for (int i { 9 }; i >= 0; --i) { l1.push_front(i); } for (int i { 0 }; i < 4; ++i) { l1.pop_front(); } l1.print(std::cout); Jump_List l2 { std::move(l1) }; l2.print(std::cout); }