Skip to content
MapInitWithValueCompare

MapInitWithValueCompare

MapInitWithValueCompare

Description

Initialize map with required key hash, key compare, and value compare callbacks. Uses linear probing by default.

Parameters

Name Direction Description
hash_fn in Hash callback for keys.
compare_fn in Key comparator.
value_compare_fn in Value comparator used by pair-level APIs.

Usage example (Cross-references)

Usage examples (Cross-references)
    static bool test_map_type_with_value_compare(void) {
        typedef Map(int, int) IntIntMap;
        IntIntMap map = MapInitWithValueCompare(int_hash, int_compare, int_compare);
    
        return map.key_compare == int_compare && map.value_compare == int_compare && map.key_hash == int_hash;
    static bool test_map_remove_pair(void) {
        typedef Map(int, int) IntIntMap;
        IntIntMap map = MapInitWithValueCompare(int_hash, int_compare, int_compare);
    
        MapInsertR(&map, 5, 50);
    static bool test_map_set_first(void) {
        typedef Map(int, int) IntIntMap;
        IntIntMap map = MapInitWithValueCompare(int_hash, int_compare, int_compare);
    
        MapInsertR(&map, 1, 10);
    static bool test_map_compact_and_swap(void) {
        typedef Map(int, int) IntIntMap;
        IntIntMap first  = MapInitWithValueCompare(int_hash, int_compare, int_compare);
        IntIntMap second = MapInitWithValueCompare(int_hash, int_compare, int_compare);
        typedef Map(int, int) IntIntMap;
        IntIntMap first  = MapInitWithValueCompare(int_hash, int_compare, int_compare);
        IntIntMap second = MapInitWithValueCompare(int_hash, int_compare, int_compare);
    
        MapInsertR(&first, 1, 10);
    static bool test_map_contains_and_find(void) {
        typedef Map(int, int) IntIntMap;
        IntIntMap map = MapInitWithValueCompare(int_hash, int_compare, int_compare);
    
        MapSetOnlyR(&map, 7, 70);
    #    define MapInitT(m, hash_fn, compare_fn) (TYPE_OF(m) MapInit((hash_fn), (compare_fn)))
    #    define MapInitWithValueCompareT(m, hash_fn, compare_fn, value_compare_fn)                                         \
            (TYPE_OF(m) MapInitWithValueCompare((hash_fn), (compare_fn), (value_compare_fn)))
    #    define MapInitWithPolicyT(m, hash_fn, compare_fn, policy_value)                                                   \
            (TYPE_OF(m) MapInitWithPolicy((hash_fn), (compare_fn), (policy_value)))
    #    define MapInitT(m, hash_fn, compare_fn) ((TYPE_OF(m))MapInit((hash_fn), (compare_fn)))
    #    define MapInitWithValueCompareT(m, hash_fn, compare_fn, value_compare_fn)                                         \
            ((TYPE_OF(m))MapInitWithValueCompare((hash_fn), (compare_fn), (value_compare_fn)))
    #    define MapInitWithPolicyT(m, hash_fn, compare_fn, policy_value)                                                   \
            ((TYPE_OF(m))MapInitWithPolicy((hash_fn), (compare_fn), (policy_value)))
Last updated on