37 lines
933 B
Markdown
37 lines
933 B
Markdown
|
|
# HashMap::operator=
|
|||
|
|
|
|||
|
|
```cpp
|
|||
|
|
HashMap& operator=(const HashMap& other);
|
|||
|
|
HashMap& operator=(HashMap&& other) noexcept;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
赋值运算符,用另一个 HashMap 的内容替换当前内容。
|
|||
|
|
|
|||
|
|
**参数:**
|
|||
|
|
- `other` - 源哈希表(拷贝版本为 `const` 引用,移动版本为右值引用)
|
|||
|
|
|
|||
|
|
**返回:** 对当前对象的引用 (`*this`)
|
|||
|
|
|
|||
|
|
**复杂度:**
|
|||
|
|
- 拷贝赋值:O(m_bucketCount + other.m_size)
|
|||
|
|
- 移动赋值:O(m_size),需要先清空当前内容
|
|||
|
|
|
|||
|
|
**示例:**
|
|||
|
|
|
|||
|
|
```cpp
|
|||
|
|
XCEngine::Containers::HashMap<int, const char*> map1;
|
|||
|
|
map1.Insert(1, "one");
|
|||
|
|
map1.Insert(2, "two");
|
|||
|
|
|
|||
|
|
XCEngine::Containers::HashMap<int, const char*> map2;
|
|||
|
|
map2 = map1; // 拷贝赋值
|
|||
|
|
|
|||
|
|
XCEngine::Containers::HashMap<int, const char*> map3;
|
|||
|
|
map3 = std::move(map1); // 移动赋值,map1 在此调用后状态不确定
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 相关文档
|
|||
|
|
|
|||
|
|
- [HashMap 总览](hashmap.md) - 返回类总览
|
|||
|
|
- [Copy/Move](copy-move.md) - 拷贝/移动构造
|