unordered module
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Christian Mazakas 5724adbbe9
Merge pull request #187 from boostorg/feature/foa_fast_iteration
Feature/foa fast iteration
3 months ago
.drone drone.jsonnet update 10 months ago
.github/workflows Increase GHA timeout to 180 minutes 3 months ago
benchmark fixed copy&paste error 4 months ago
doc updated release notes 3 months ago
examples Update paths for headers moved from detail 6 years ago
include/boost s/BOOST_UNORDERED_ASSUME/BOOST_ASSERT 3 months ago
meta [skip ci] Add "cxxstd" json field. The "cxxstd" json field is being added to each Boost library's meta json information for libraries in order to specify the minumum C++ standard compilation level. The value of this field matches one of the values for 'cxxstd' in Boost.Build. The purpose of doing this is to provide information for the Boost website documentation for each library which will specify the minimum C++ standard compilation that an end-user must employ in order to use the particular library. This will aid end-users who want to know if they can successfully use a Boost library based on their C++ compiler's compilation level, without having to search the library's documentation to find this out. 2 years ago
test Add test that ensures proper uses-allocator construction is followed 3 months ago
.appveyor.yml Split AppVeyor jobs to avoid timeouts 8 months ago
.codecov.yml Update CI from boost-ci 1 year ago
.drone.jsonnet Update drone to run using the same branches as listed in GHA's ci.yml 3 months ago
.editorconfig Change clang format indentation + .editorconfig file 6 years ago
.gitattributes Move top-level boost directory over to "devel" (temporarily) 16 years ago
.gitignore Add /doc/pdf/ to .gitignore 5 months ago
.travis.yml Use boost 1.67.0 in tests 5 years ago
CMakeLists.txt Remove dependency on Boost.Iterator 12 months ago
LICENSE Add LICENSE and README 1 year ago Add LICENSE and README 1 year ago
_clang-format Update clang format comment for 4.0.0 6 years ago
index.html Update index.html 1 year ago


Part of collection of the Boost C++ Libraries.

For accessing data based on key lookup, the C++ standard library offers std::set, std::map, std::multiset and std::multimap. These are generally implemented using balanced binary trees so that lookup time has logarithmic complexity. That is generally okay, but in many cases a hash table can perform better, as accessing data has constant complexity, on average. The worst case complexity is linear, but that occurs rarely and with some care, can be avoided.

Also, the existing containers require a 'less than' comparison object to order their elements. For some data types this is impossible to implement or isnt practical. In contrast, a hash table only needs an equality function and a hash function for the key.

With this in mind, unordered associative containers were added to the C++ standard. This is an implementation of the containers described in C++11, with some deviations from the standard in order to work with non-C++11 compilers and libraries.


Distributed under the Boost Software License, Version 1.0.


  • C++03
  • Header-Only

Build Status

Branch GH Actions Appveyor Deps Docs Tests
master CI Build status codecov Deps Documentation Enter the Matrix
develop CI Build status codecov Deps Documentation Enter the Matrix


Name Purpose
doc documentation
example examples
include headers
test unit tests

More information

  • Ask questions
  • Report bugs: Be sure to mention Boost version, platform and compiler you're using. A small compilable code sample to reproduce the problem is always good as well.
  • Submit your patches as pull requests against develop branch. Note that by submitting patches you agree to license your modifications under the Boost Software License, Version 1.0.
  • Discussions about the library are held on the Boost developers mailing list. Be sure to read the discussion policy before posting and add the [unordered] tag at the beginning of the subject line.