PLF C++ Library

PLF is a collection of library modules for C++. Please click on the links below to learn more about the different modules and to download. All modules (except timsort) are under a permissive Zlib license and support C++03/C++11/C++14. Tested compilers include Clang 3.61-3.71, GCC 4.6-7.2 (32-bit and 64-bit) and MS Visual C++ 2010-2015.



plf::colony - An unordered data container providing fast iteration/insertion/erasure while maintaining pointer/iterator validity to non-erased elements.

plf::list - A data container replicating std::list functionality but with (on average) 333% faster insertion, 81% faster erasure and 16% faster iteration.

plf::stack - A data container replicating std::stack functionality but with better performance than standard library containers in a stack context.

plf::nanotimer - A cross-platform lowest-overhead microsecond-precision timer for simple benchmarking on Linux/BSD/Windows/Mac.

plf::timsort - A fork of GFX's timsort function - will be used internally by colony (instead of std::sort) if included in the project prior to colony.

advanced jump-counting skipfield pattern - A skipfield pattern which avoids branching during iteration. Used by colony.



Cppcon 2016

The following talk entitled "Colonies, performance and why you should care" was presented at CPPcon 2016:

The slides for the talk are available here.

PacifiC++ 2017

The following talk entitled "Can we make a faster linked list?" was presented at PacifiC++ 2017:

The slides for the talk are available here.

Contact: footer
plf:: library and this page Copyright (c) 2017, Matthew Bentley