Files
XCEngine/docs/api/containers/hashmap/erase.md

1.0 KiB
Raw Blame History

HashMap::Erase

bool Erase(const Key& key);

删除指定键对应的元素。

参数:

  • key - 要删除的键

返回: 如果元素被删除返回 true,如果键不存在返回 false

复杂度: O(1) 平均,最坏 O(n)(同一桶中有多个键发生哈希冲突)

线程安全: 非线程安全

异常:

实现备注: 使用 swap-with-last 策略,将待删除元素与桶内最后一个元素交换,然后 popBack避免数组元素批量移动。

示例:

XCEngine::Containers::HashMap<int, const char*> map;
map.Insert(1, "one");
map.Insert(2, "two");
map.Insert(3, "three");

bool erased = map.Erase(2); // 返回 true

if (!map.Contains(2)) {
    std::cout << "Key 2 removed" << std::endl; // 输出 "Key 2 removed"
}

bool notErased = map.Erase(99); // 返回 false键不存在

相关文档