|
| bucket_container (size_type hp, const allocator_type &allocator) |
|
| bucket_container (const bucket_container &bc) |
|
| bucket_container (const bucket_container &bc, const allocator_type &a) |
|
| bucket_container (bucket_container &&bc) |
|
| bucket_container (bucket_container &&bc, const allocator_type &a) |
|
bucket_container & | operator= (const bucket_container &bc) |
|
bucket_container & | operator= (bucket_container &&bc) |
|
void | swap (bucket_container &bc) noexcept |
|
size_type | hashpower () const |
|
void | hashpower (size_type val) |
|
size_type | size () const |
|
allocator_type | get_allocator () const |
|
bucket & | operator[] (size_type i) |
|
const bucket & | operator[] (size_type i) const |
|
template<typename K , typename... Args> |
void | setKV (size_type ind, size_type slot, partial_t p, K &&k, Args &&... args) |
|
void | eraseKV (size_type ind, size_type slot) |
|
void | clear () noexcept |
|
void | clear_and_deallocate () noexcept |
|
bool | is_deallocated () const noexcept |
|
|
template<typename ThisKey , typename ThisT > |
std::enable_if< std::is_trivial< ThisKey >::value &&std::is_trivial< ThisT >::value, std::ostream & >::type | operator<< (std::ostream &os, const bucket_container< ThisKey, ThisT, Allocator, Partial, SLOT_PER_BUCKET > &bc) |
|
template<typename ThisKey , typename ThisT > |
std::enable_if< std::is_trivial< ThisKey >::value &&std::is_trivial< ThisT >::value, std::istream & >::type | operator>> (std::istream &is, bucket_container< ThisKey, ThisT, Allocator, Partial, SLOT_PER_BUCKET > &bc) |
|
template<class Key, class T, class Allocator, class Partial, std::size_t SLOT_PER_BUCKET>
class libcuckoo::bucket_container< Key, T, Allocator, Partial, SLOT_PER_BUCKET >
bucket_container manages storage of key-value pairs for the table. It stores the items inline in uninitialized memory, and keeps track of which slots have live data and which do not. It also stores a partial hash for each live key. It is sized by powers of two.
- Template Parameters
-
Key | type of keys in the table |
T | type of values in the table |
Allocator | type of key-value pair allocator |
Partial | type of partial keys |
SLOT_PER_BUCKET | number of slots for each bucket in the table |