Files
XCEngine/docs/api/containers/hashmap/copy-move.md
ssdfasd 12ae6f561a docs: Fix containers module documentation discrepancies
- Array::SetAllocator: Remove reference to non-existent PoolAllocator class
- HashMap::SetAllocator: Remove reference to non-existent GetDefaultAllocator()
- HashMap::Copy/Move: Fix move constructor complexity (O(m_bucketCount), not O(1))
- HashMap::iterator: Remove C++20 structured bindings example
- String: Add missing links for operator+ and operator==/!=
2026-03-19 01:14:20 +08:00

904 B
Raw Blame History

HashMap::Copy/Move 构造

HashMap(const HashMap& other);
HashMap(HashMap&& other) noexcept;

拷贝构造和移动构造。

参数:

  • other - 源哈希表(拷贝版本为 const 引用,移动版本为右值引用)

返回: 无(构造函数)

复杂度:

  • 拷贝构造O(m_bucketCount + other.m_size)
  • 移动构造O(m_bucketCount),移动构造需要遍历所有桶以重新建立桶的指针关系

示例:

XCEngine::Containers::HashMap<int, std::string> map1;
map1.Insert(1, "hello");
map1.Insert(2, "world");

XCEngine::Containers::HashMap<int, std::string> map2(map1); // 拷贝构造

XCEngine::Containers::HashMap<int, std::string> map3(std::move(map1)); // 移动构造map1 在此调用后状态不确定

相关文档