OrderedIndex.removeKey

Removes elements from the container that are equal to the given values according to the less comparator. One element is removed for each value given which is in the container. If allowDuplicates is true, duplicates are removed only if duplicate values are given.

  1. size_t removeKey(Keys keys)
  2. size_t removeKey(Key[] keys)
  3. size_t removeKey(Stuff stuff)
    mixintemplate OrderedIndex(size_t N, bool allowDuplicates, alias KeyFromValue, alias Compare, ThisContainer)
    size_t
    removeKey
    (
    Stuff
    )
    (
    Stuff stuff
    )
    if (
    isInputRange!Stuff &&
    isImplicitlyConvertible!(ElementType!Stuff, KeyType)
    &&
    !isDynamicArray!Stuff
    )
    out (r) { version (RBDoChecks) _Check(); }

Return Value

Type: size_t

The number of elements removed.

Complexity: O(n keys d(n));
O(n keys log(n)) for this index

Examples

// ya, this needs updating
auto rbt = redBlackTree!true(0, 1, 1, 1, 4, 5, 7);
rbt.removeKey(1, 4, 7);
assert(std.algorithm.equal(rbt[], [0, 1, 1, 5]));
rbt.removeKey(1, 1, 0);
assert(std.algorithm.equal(rbt[], [5]));

Meta