Go to the documentation of this file.
30 #ifndef ABSL_CONTAINER_FLAT_HASH_MAP_H_
31 #define ABSL_CONTAINER_FLAT_HASH_MAP_H_
35 #include <type_traits>
38 #include "absl/algorithm/container.h"
39 #include "absl/base/macros.h"
40 #include "absl/container/internal/container_memory.h"
41 #include "absl/container/internal/hash_function_defaults.h"
42 #include "absl/container/internal/raw_hash_map.h"
43 #include "absl/memory/memory.h"
47 namespace container_internal {
48 template <
class K,
class V>
109 template <
class K,
class V,
112 class Allocator = std::allocator<std::pair<const K, V>>>
114 absl::container_internal::FlatHashMapPolicy<K, V>,
115 Hash, Eq, Allocator> {
116 using Base =
typename flat_hash_map::raw_hash_map;
202 using Base::max_size;
316 using Base::insert_or_assign;
345 using Base::emplace_hint;
374 using Base::try_emplace;
470 using Base::equal_range;
496 using Base::operator[];
503 using Base::bucket_count;
509 using Base::load_factor;
527 using Base::max_load_factor;
532 using Base::get_allocator;
538 using Base::hash_function;
550 template <
typename K,
typename V,
typename H,
typename E,
typename A,
557 namespace container_internal {
559 template <
class K,
class V>
560 struct FlatHashMapPolicy {
567 template <
class Allocator,
class...
Args>
572 template <
class Allocator>
577 template <
class Allocator>
583 template <
class F,
class...
Args>
585 std::declval<F>(), std::declval<Args>()...))
588 std::forward<Args>(
args)...);
595 static V&
value(std::pair<const K, V>* kv) {
return kv->second; }
596 static const V&
value(
const std::pair<const K, V>* kv) {
return kv->second; }
601 namespace container_algorithm_internal {
604 template <
class Key,
class T,
class Hash,
class KeyEqual,
class Allocator>
613 #endif // ABSL_CONTAINER_FLAT_HASH_MAP_H_
static void destroy(Allocator *alloc, slot_type *slot)
static void ** find(grpc_chttp2_stream_map *map, uint32_t key)
typename slot_policy::slot_type slot_type
static bool reserve(upb_pb_encoder *e, size_t bytes)
integral_constant< bool, true > true_type
auto DecomposePair(F &&f, Args &&... args) -> decltype(memory_internal::DecomposePairImpl(std::forward< F >(f), PairArgs(std::forward< Args >(args)...)))
map_slot_type< K, V > slot_type
#define ABSL_NAMESPACE_END
hash_default_eq< T > key_eq
#define ABSL_NAMESPACE_BEGIN
internal::EqMatcher< T > Eq(T x)
int extract(FILE *in, struct access *index, off_t offset, unsigned char *buf, int len)
btree_map< K, V, C, A >::size_type erase_if(btree_map< K, V, C, A > &map, Pred pred)
std::pair< key_type, mapped_type > init_type
static void transfer(Allocator *alloc, slot_type *new_slot, slot_type *old_slot)
static void construct(Allocator *alloc, slot_type *slot, Args &&... args)
raw_hash_set< P, H, E, A >::size_type EraseIf(Predicate &pred, raw_hash_set< P, H, E, A > *c)
typename container_internal::HashEq< T >::Hash hash_default_hash
static void transfer(Allocator *alloc, slot_type *new_slot, slot_type *old_slot)
static void insert(upb_table *t, lookupkey_t key, upb_tabkey tabkey, upb_value val, uint32_t hash, hashfunc_t *hashfunc, eqlfunc_t *eql)
typename container_internal::HashEq< T >::Eq hash_default_eq
static const V & value(const std::pair< const K, V > *kv)
static std::pair< const K, V > & element(slot_type *slot)
static int contains(grpc_timer_heap *pq, grpc_timer *el)
static size_t space_used(const slot_type *)
def merge(callgrind_files, srcs)
auto apply(Functor &&functor, Tuple &&t) -> decltype(utility_internal::apply_helper(absl::forward< Functor >(functor), absl::forward< Tuple >(t), absl::make_index_sequence< std::tuple_size< typename std::remove_reference< Tuple >::type >::value >
static void construct(Allocator *alloc, slot_type *slot, Args &&... args)
std::pair< std::string, std::string > pair
static void destroy(Allocator *alloc, slot_type *slot)
std::allocator< int > alloc
absl::hash_internal::Hash< T > Hash
static V & value(std::pair< const K, V > *kv)
grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:24