type
status
date
slug
summary
tags
category
icon
password

C++之哈希表(STL容器)

在C++的STL中由unordered_set和unordered_map实现。

unordered_set

unordered_map

区别

unordered_mapunordered_set都是C++标准库中的容器,它们基于哈希表实现,因此插入、删除和查找操作的平均时间复杂度都是O(1)。然而,它们的使用场景和内部实现上存在一些关键的区别。
  1. 存储内容
      • unordered_map:存储键值对(key-value pairs)
        • 每个键(key)都是唯一的,并与一个值(value)相关联。
        • 可以通过键来快速查找、插入或删除对应的值。
      • std::unordered_set:只存储唯一的键(keys)。
        • 它不存储与键相关联的值。
        • 你可以快速检查一个键是否存在于集合中,或者快速插入或删除一个键
  1. 迭代器
      • 对于unordered_map,迭代器指向的是键值对。
      • 对于unordered_set,迭代器指向的是键。
  1. 使用场景
      • 当你需要存储键值对,并且需要快速通过键来查找、插入或删除对应的值时,应该使用unordered_map
      • 当你只需要存储唯一的键,并需要快速检查键的存在性,或者快速插入或删除键时,应该使用unordered_set
  1. 内存使用
      • 由于unordered_map存储了键值对,因此它通常会比存储相同数量键的unordered_set使用更多的内存
总的来说,如果你需要存储键值对,那么应该选择unordered_map;如果你只需要存储唯一的键,那么应该选择unordered_set

📎 参考文章

  • 引用视频
  1. std::unordered_map In C++ | STL C++ (youtube.com)
  • 引用文章
  1. C++中的unordered_map用法详解-CSDN博客
  1. C++之哈希表(STL容器)_c++有没有自带的哈希算法-CSDN博客
哈希表-理论知识哈希表-相关题目(持更中)
  • Cusdis
  • Utterance
Chailyn
Chailyn
I will always be loyal to myself running towards ideal and freedom.
Announcement
🎉欢迎来到我的homepage🎉
-- 感谢您的支持 ---
吾生也有涯,而知也无涯
旅行记录,与你分享路过的风景
知识无价,学术blog上希望能帮到你
-- 祝您所遇皆温柔,所感皆太阳 --
更新(2024.12.12):
更新文章 “摆烂日记:静默中的能量积蓄
 
 
 
2024 Chailyn.

ChailynCui BLOG | I will always be loyal to myself running towards ideal and freedom.

Powered by NotionNext 4.3.1.