This version of Boost is under active development. The current version is 1.88.0.
C++
11
Added in Boost
1.36.0
Categories:
Containers
Unordered associative containers.
This Release
Daniel James
Daniel James
Author
Joaquin M. López Muñoz
Joaquin M. López Muñoz
Maintainer
Christian Mazakas
Christian Mazakas
Maintainer
Boost.Unordered
Branch CI Drone status Build status codecov Deps Documentation Enter the Matrix
Branch CI Drone status Build status
Boost.Unordered offers a catalog of hash containers with different standards compliance levels, performances and intented usage scenarios:
boost::unordered_set
boost::unordered_map
boost::unordered_multiset
boost::unordered_multimap
- Fully conformant implementations of
std::unordered_[multi](set|map)
,
but faster and up to the latest revisions of the standard even if you're working in an older version of C++ (heterogeneous lookup,
try_emplace
, contains
, etc.)boost::unordered_flat_set
boost::unordered_flat_map
- The fastest of the lot. Based on open addressing, these containers slightly
deviate from the standard in exchange for top performance.
boost::unordered_node_set
boost::unordered_node_map
- Variations of
boost::unordered_flat_(set|map)
providing pointer stability.boost::concurrent_flat_set
boost::concurrent_flat_map
- High performance for multithreaded scenarios. Introducing a new non-standard, iterator-free API.
Learn about Boost.Unordered
- Online documentation
- Some benchmarks
- Technical articles on Boost.Unordered internal design:
Get the library
Boost.Unordered can be installed in a number of ways:
- Download Boost and you're ready to go (this is a header-only library requiring no building).
- Using Conan 2: In case you don't have it yet, add an entry for Boost in your
conanfile.txt
(the example requires at least Boost 1.83):
[requires]
boost/[>=1.83.0]
- If you're not using any compiled Boost library, the following will skip building altogether:
[options]
boost:header_only=True
- Using vcpkg: Execute the command
vcpkg install boost-unordered
- Using CMake: Boost CMake support infrastructure allows you to use CMake directly to download, build and consume all of Boost or some specific libraries.
Support
- Join the #boost-unordered discussion group at cpplang.slack.com (ask for an invite if you’re not a member of this workspace yet)
- Ask in the Boost Users mailing list
(add the
[unordered]
tag at the beginning of the subject line) - File an issue
Contribute
- Pull requests against develop branch are most welcome. Note that by submitting patches you agree to license your modifications under the Boost Software License, Version 1.0.