Name
Template Class — Template class for associative container with concurrent access.concurrent_hash_map<Key,T,HashCompare>
Synopsis
#include "tbb/concurrent_hash_map.h" template<typename Key, typename T, typename HashCompare> class concurrent_hash_map;
Description
A concurrent_hash_map maps keys to values in a way that permits multiple threads to concurrently access values. The keys are unordered. The interface resembles typical STL associative containers, but with some differences that are critical to supporting concurrent access.
The Key and T types must model the Copy Constructible Concept.
The Hash Compare type specifies how keys are hashed and compared for equality. It must model the HashCompare Concept defined in Table 5-3.
Table 5-3. HashCompare Concept
|
Pseudosignature |
Semantics |
|---|---|
|
|
Copy constructor |
|
|
Destructor |
|
|
|
|
|
Hash code for key |
As for most hash tables, if two keys are equal, they must hash to the same hash code. That is, for a given HashCompare h and any two keys j and k, the following assertion must hold: !h.equal(j,k)||h.hash(j)==h.hash(k). The importance of this property is the reason that concurrent_hash_map places key equality and hashing in a single object instead of keeping them as separate objects.
Members
namespace tbb { template<typename Key, typename T, typename ...