Files
XCSDD/docs/api/containers/hashmap/insert.md
ssdfasd 58a83f445a fix: improve doc link navigation and tree display
- Fix link resolution with proper relative/absolute path handling
- Improve link styling with underline decoration
- Hide leaf nodes from tree, only show directories
- Fix log file path for packaged app
2026-03-19 12:44:08 +08:00

39 lines
1.2 KiB
Markdown
Raw Permalink 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::Insert
```cpp
bool Insert(const Key& key, const Value& value);
bool Insert(const Key& key, Value&& value);
bool Insert(Pair&& pair);
```
插入键值对。如果键已存在,则更新其值并返回 `false`;否则插入新元素并返回 `true`
**参数:**
- `key` - 要插入的键
- `value` - 要插入的值const 版本为拷贝,&& 版本为移动)
- `pair` - 包含键值对的 `Pair` 结构(右值)
**返回:** 如果插入成功(键不存在)返回 `true`,如果键已存在(更新值)返回 `false`
**复杂度:** O(1) 平均,最坏 O(n)(包括可能的 rehash
**示例:**
```cpp
XCEngine::Containers::HashMap<int, std::string> map;
bool inserted1 = map.Insert(1, "one"); // 返回 true
bool inserted2 = map.Insert(1, "ONE"); // 返回 false更新现有值
bool inserted3 = map.Insert(2, std::string("two")); // 移动语义版本
XCEngine::Containers::HashMap<int, std::string>::Pair p{3, "three"};
bool inserted4 = map.Insert(std::move(p)); // Pair 移动版本
```
## 相关文档
- [HashMap 总览](hashmap.md) - 返回类总览
- [operator[]](./operator-subscript.md) - 下标访问(总是插入)
- [Erase](erase.md) - 删除键对应的元素