pdsLib is a C++ library including persistent variants of a bi-directional list, a dynamic array, and a hash table.
List();
List(std::shared_ptr<Element>, List const&);
List(T, List const&);
List(List const&, T);
bool IsEmpty() const;
int Count() const;
List AddHead(T) const;
List AddTail(T) const;
List Take(int) const;
T Get(int) const;
List Set(int, T) const;
List Insert(T, int index = 0) const;
List Remove(int) const;
void PrintAll() const;
Array();
Array(std::shared_ptr, Array const&);
Array(int, Array const&);
bool IsEmpty() const;
int Count() const;
Array Add(const T&) const;
Array Remove(const T&) const;
bool Find(const T&) const;
void PrintAll() const;
HashTable();
HashTable(std::shared_ptr, HashTable const&);
HashTable(int, HashTable const&);
bool IsEmpty() const;
int Count() const;
void Hash(std::shared_ptr element, const HashFunction1& hash1 = HashFunction1(), const HashFunction2& hash2 = HashFunction2());
HashTable Add(const T&) const;
HashTable Remove(const T&) const;
bool Find(const T&) const;
void PrintAll() const;