Skip to content
MapContainsKey

MapContainsKey

Description

Check if the map stores at least one value for a key.

Parameters

Name Direction Description
m in Map.
lookup_key in Key to search for.

Success

Returns true when at least one entry exists for the key. The map is not modified.

Failure

Returns false when no entry exists for the key. The map is not modified.

Usage example (Cross-references)

Usage examples (Cross-references)
        second_value_buf[0] = 'S';
    
        result       = result && MapContainsKey(&map, "alpha");
        result       = result && !MapContainsKey(&map, key);
        result       = result && (MapValueCountForKey(&map, "alpha") == 2);
    
        result       = result && MapContainsKey(&map, "alpha");
        result       = result && !MapContainsKey(&map, key);
        result       = result && (MapValueCountForKey(&map, "alpha") == 2);
        stored_value = MapGetFirstPtr(&map, "alpha");
        result = result && MapContainsPair(&map, 1, 10);
        result = result && MapContainsPair(&map, 3, 30);
        result = result && !MapContainsKey(&map, 2);
        result = result && (MapPairCount(&map) == 2);
        result = result && (MapUniqueKeyCount(&map) == 2);
        // Tombstones gone, survivors intact, exact counts preserved.
        result = result && (MapTombstones(&map) == 0);
        result = result && !MapContainsKey(&map, 1);
        result = result && MapContainsPair(&map, 2, 20);
        result = result && MapContainsPair(&map, 2, 21);
    
        bool result = (MapRetainIf(&map, retain_values_above_threshold, &threshold) == 2);
        result      = result && !MapContainsKey(&map, 1);
        result      = result && !MapContainsKey(&map, 2);
        result      = result && MapContainsKey(&map, 3);
        bool result = (MapRetainIf(&map, retain_values_above_threshold, &threshold) == 2);
        result      = result && !MapContainsKey(&map, 1);
        result      = result && !MapContainsKey(&map, 2);
        result      = result && MapContainsKey(&map, 3);
        result      = result && MapContainsKey(&map, 4);
        result      = result && !MapContainsKey(&map, 1);
        result      = result && !MapContainsKey(&map, 2);
        result      = result && MapContainsKey(&map, 3);
        result      = result && MapContainsKey(&map, 4);
        result      = result && (MapPairCount(&map) == 2);
        result      = result && !MapContainsKey(&map, 2);
        result      = result && MapContainsKey(&map, 3);
        result      = result && MapContainsKey(&map, 4);
        result      = result && (MapPairCount(&map) == 2);
    
        bool result = (reserved_capacity >= 32) && (MapCapacity(&map) == reserved_capacity) && (MapTombstones(&map) == 0) &&
                      (MapPairCount(&map) == 0) && MapEmpty(&map) && !MapContainsKey(&map, 1) && !MapContainsKey(&map, 2);
    
        MapSetOnlyR(&map, 7, 70);
        // Miss on an empty (capacity 0) map: returns false, nothing inserted.
        bool result = !MapSetFirstR(&map, 7, 70);
        result      = result && (MapPairCount(&map) == 0) && !MapContainsKey(&map, 7);
    
        MapInsertR(&map, 1, 10);
        // Miss on a populated map (key absent): returns false, map unchanged.
        result = result && !MapSetFirstR(&map, 7, 70);
        result = result && !MapContainsKey(&map, 7);
        result = result && (MapValueCountForKey(&map, 7) == 0);
        result = result && (MapPairCount(&map) == 1);
        result   = result && !MapSetFirstL(&map, 99, miss);
        result   = result && (miss == 220);
        result   = result && !MapContainsKey(&map, 99);
        result   = result && (MapPairCount(&map) == 1);
            int *v = MapGetFirstPtr(&map, keys[i]);
            result = result && v && (*v == keys[i] + 1);
            result = result && MapContainsKey(&map, keys[i]);
        }
    
        bool result = MapRemoveFirst(&map, 1);
        result      = result && MapContainsKey(&map, 1);
        result      = result && (MapValueCountForKey(&map, 1) == 1);
        result      = result && MapGetFirstPtr(&map, 1) && (*MapGetFirstPtr(&map, 1) == 11);
        result      = result && (MapPairCount(&map) == length_before);
        result      = result && (MapTombstones(&map) == tombstones_before);
        result      = result && MapContainsKey(&map, 1);
        result      = result && MapContainsKey(&map, 2);
        result      = result && (MapTombstones(&map) == tombstones_before);
        result      = result && MapContainsKey(&map, 1);
        result      = result && MapContainsKey(&map, 2);
    
        MapDeinit(&map);
        MapRemoveFirst(&map, 5);
        result = result && (MapTombstones(&map) == 1);
        result = result && !MapContainsKey(&map, 5);
    
        MapInsertR(&map, 5, 51);
    
        bool result = (MapRemoveIf(&map, remove_even_values, NULL) == 2);
        result      = result && !MapContainsKey(&map, 2);
        result      = result && (MapValueCountForKey(&map, 1) == 1);
        result      = result && MapGetFirstPtr(&map, 1) && (*MapGetFirstPtr(&map, 1) == 11);
        result      = result && (MapValueCountForKey(&map, 1) == 1);
        result      = result && MapGetFirstPtr(&map, 1) && (*MapGetFirstPtr(&map, 1) == 11);
        result      = result && MapContainsKey(&map, 3);
        result      = result && (MapPairCount(&map) == 2);
    
        bool result = (MapRemoveAll(&map, 5) == 3);
        result      = result && !MapContainsKey(&map, 5);
        result      = result && (MapValueCountForKey(&map, 5) == 0);
        result      = result && MapContainsKey(&map, 9);
        result      = result && !MapContainsKey(&map, 5);
        result      = result && (MapValueCountForKey(&map, 5) == 0);
        result      = result && MapContainsKey(&map, 9);
        result      = result && (MapPairCount(&map) == 1);
        result      = result && (MapPairCount(&map) == length_before);
        result      = result && (MapTombstones(&map) == tombstones_before);
        result      = result && MapContainsKey(&map, 5);
        result      = result && MapContainsKey(&map, 9);
        result      = result && (MapTombstones(&map) == tombstones_before);
        result      = result && MapContainsKey(&map, 5);
        result      = result && MapContainsKey(&map, 9);
    
        MapDeinit(&map);
    
        MapRemoveFirst(&map, 5);
        bool result = !MapContainsKey(&map, 5);
        result      = result && (MapPairCount(&map) == length_before - 1);
    
        MapSetOnlyR(&map, 5, 205);
        result = result && MapContainsKey(&map, 5);
        result = result && MapGetFirstPtr(&map, 5) && (*MapGetFirstPtr(&map, 5) == 205);
        result = result && (MapPairCount(&map) == length_before);
        result = result && MapRemovePair(&map, "alpha", "two"); // remaining alpha freed
        result = result && (MapRemoveAll(&map, "beta") == 1);   // beta freed
        result = result && !MapContainsKey(&map, "alpha");
        result = result && !MapContainsKey(&map, "beta");
        result = result && MapContainsKey(&map, "gamma");
        result = result && (MapRemoveAll(&map, "beta") == 1);   // beta freed
        result = result && !MapContainsKey(&map, "alpha");
        result = result && !MapContainsKey(&map, "beta");
        result = result && MapContainsKey(&map, "gamma");
        result = result && !MapContainsKey(&map, "alpha");
        result = result && !MapContainsKey(&map, "beta");
        result = result && MapContainsKey(&map, "gamma");
    
        MapDeinit(&map);
        bool result = MapRemoveFirst(&map, 1) && MapRemoveFirst(&map, 2);
        result      = result && (MapPairCount(&map) == 2);
        result      = result && !MapContainsKey(&map, 1) && !MapContainsKey(&map, 2);
        result      = result && MapGetFirstPtr(&map, 0) && (*MapGetFirstPtr(&map, 0) == 0);
        result      = result && MapGetFirstPtr(&map, 3) && (*MapGetFirstPtr(&map, 3) == 30);
        MapSetOnlyR(&map, 9, 90);
    
        bool result = MapContainsKey(&map, 7);
        result      = result && MapContainsKey(&map, 9);
        result      = result && !MapContainsKey(&map, 8);
    
        bool result = MapContainsKey(&map, 7);
        result      = result && MapContainsKey(&map, 9);
        result      = result && !MapContainsKey(&map, 8);
        result      = result && MapContainsPair(&map, 7, 70);
        bool result = MapContainsKey(&map, 7);
        result      = result && MapContainsKey(&map, 9);
        result      = result && !MapContainsKey(&map, 8);
        result      = result && MapContainsPair(&map, 7, 70);
        result      = result && MapContainsPair(&map, 7, 71);
    
        bool result = (MapGetFirstPtr(&map, 7) == NULL);             // map_get_value_ptr early-out
        result      = result && !MapContainsKey(&map, 7);            // map_contains early-out
        result      = result && !MapContainsPair(&map, 7, 0);        // map_contains_pair early-out
        result      = result && (MapValueCountForKey(&map, 7) == 0); // map_value_count early-out
        result  = result && (got == 1234);
        result  = result && (MapPairCount(&map) == 0);
        result  = result && !MapContainsKey(&map, 7);
    
        MapDeinit(&map);
        bool result = (found == 110);
        result      = result && (miss == 555);
        result      = result && !MapContainsKey(&map, 999);
    
        MapDeinit(&map);
            int *v = MapGetFirstPtr(&map, k);
            result = result && v && (*v == k * 100 + 7);
            result = result && MapContainsKey(&map, k) && (MapValueCountForKey(&map, k) == 1);
        }
        // A key that collides into the chain but was never inserted is absent.
        }
        // A key that collides into the chain but was never inserted is absent.
        result = result && !MapContainsKey(&map, 99) && (MapGetFirstPtr(&map, 99) == NULL);
    
        // Multivalued key inside the colliding chain: count is per-key, not
            int *v = MapGetFirstPtr(&map, k);
            result = result && v && (*v == k * 100 + 7);
            result = result && MapContainsKey(&map, k) && (MapValueCountForKey(&map, k) == 1);
        }
        // A key that collides into the chain but was never inserted is absent.
        }
        // A key that collides into the chain but was never inserted is absent.
        result = result && !MapContainsKey(&map, 9999) && (MapGetFirstPtr(&map, 9999) == NULL);
    
        // Remove an INTERIOR key from the collision chain.
        result = result && (MapPairCount(&map) == (KEY_COUNT - 1));
        result = result && (MapUniqueKeyCount(&map) == (KEY_COUNT - 1));
        result = result && !MapContainsKey(&map, removed) && (MapGetFirstPtr(&map, removed) == NULL);
    
        // Every OTHER key is still reachable with its own value -- removing an
            int *v = MapGetFirstPtr(&map, k);
            result = result && v && (*v == k * 100 + 7);
            result = result && MapContainsKey(&map, k) && (MapValueCountForKey(&map, k) == 1);
        }
Last updated on