哈希集合(如 C++ 中的 std::unordered_set
)具有以下特点:
-
元素唯一性:哈希集合中的元素是唯一的,即集合中不会出现重复的元素。如果尝试插入一个已存在的元素,该操作将不会有任何效果。
-
基于哈希表:哈希集合内部使用哈希表来存储元素。哈希表通过哈希函数将元素映射到数组的某个位置(桶),从而可以快速地进行插入、删除和查找操作。
-
无序性:哈希集合中的元素是无序的,即元素的插入顺序与遍历顺序可能不同。
元操作:
1.访问(Access) 不支持
2.搜索(Search)
- 有地址冲突 O(K)
- 无地址冲突 O(1)
3.插入(Insert)
- 有地址冲突 O(K)
- 无地址冲突 O(1)
4.删除(delete)
- 有地址冲突 O(K)
- 无地址冲突 O(1)
具体操作:
1. 创建集合
std::unordered_set<std::string> my_set;
2.添加元素
// 插入元素
my_set.insert("apple");
my_set.insert("banana");
my_set.insert("cherry");
3.删除元素
// 删除元素
my_set.erase("banana");
4.查询元素
if (my_set.find("apple") != my_set.end()) {
}
5.获取长度
std::size_t size = my_set.size();