使用 C++11 特性(模板、std::function、Lambda)實現一個通用的雙向循環鏈表,支援插入、刪除、查找、正/反向遍歷、自定義動作回調。
Listlst; lst.insert(10); lst.insert(20); lst.insert(30); lst.forEach([](int v){ cout << v << ' '; }); // 10 20 30 lst.forEachReverse([](int v){ cout << v << ' '; }); // 30 20 10 lst.remove(20, [](int v){ cout << "removed " << v; }); lst.forEach([](int v){ cout << v << ' '; }); // 10 30
完整實現(含 MoveTo, MoveToAt, Dispose 等輔助方法)已上傳 GitHub Gist,歡迎 Star 與 PR。