An unordered C++ data container providing fast iteration, insertion, and erasure while maintaining pointer/iterator validity to non-erased elements.
plf::colony is an unordered C++ data container designed for high-performance scenarios involving frequent insertions and erasures. It solves the problem of pointer and iterator invalidation that occurs with standard containers during modifications, while providing faster iteration speeds than std::library alternatives for unordered data.
C++ developers working with high-modification scenarios where data order is unimportant but pointer/iterator stability and performance are critical, such as game development, simulation systems, or real-time data processing.
Developers choose plf::colony over standard containers because it maintains pointer/iterator validity to non-erased elements while providing significantly better performance for insertion and erasure operations in unordered data scenarios.
An unordered C++ data container providing fast iteration/insertion/erasure while maintaining pointer/iterator validity to non-erased elements regardless of insertions/erasures. Provides higher-performance than std:: library containers for high-modification scenarios with unordered data.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Outperforms std::vector and std::list in high-insertion/erasure scenarios, as highlighted in the project description for unordered data handling.
Guarantees pointers, iterators, and references to non-erased elements remain valid despite other modifications, solving a key pain point with standard containers.
Supports C++ standards from C++98 to C++23, as stated in the README, making it usable across legacy and modern codebases.
Eliminates overhead from maintaining element order, which is unnecessary for performance-critical applications like game entities or particle systems.
Sacrifices ordered iteration capabilities, making it unsuitable for scenarios where data sequence matters, as admitted in its philosophy.
Requires integrating an external library, adding complexity compared to standard containers that come with the compiler.
Full documentation is hosted off-site at plflib.org, which may be less accessible or up-to-date than inline documentation.
Likely has higher memory usage than std::vector due to its structure for pointer stability, a common trade-off for performance gains.