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

44 lines
1.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# HashMap::Erase
```cpp
bool Erase(const Key& key);
```
删除指定键对应的元素。
**参数:**
- `key` - 要删除的键
**返回:** 如果元素被删除返回 `true`,如果键不存在返回 `false`
**复杂度:** O(1) 平均,最坏 O(n)(同一桶中有多个键发生哈希冲突)
**线程安全:** ❌ 非线程安全
**异常:**
**实现备注:** 使用 swap-with-last 策略,将待删除元素与桶内最后一个元素交换,然后 popBack避免数组元素批量移动。
**示例:**
```cpp
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键不存在
```
## 相关文档
- [HashMap 总览](hashmap.md) - 返回类总览
- [Insert](insert.md) - 插入键值对
- [Clear](clear.md) - 清空所有元素