std::unordered_set 是 C++ 标准库中的一个容器,用于存储不重复的元素集合。它是哈希表的一种实现,因此能够提供快速的插入、查找和删除操作,平均时间复杂度为 O(1)。每个元素在 std::unordered_set 中只会存在一次,重复的元素会被自动过滤。
下面是 std::unordered_set 的基本用法和一些重要的特点:
-
包含头文件:
在使用
std::unordered_set之前,你需要包含头文件#include <unordered_set>。 -
创建和初始化:
#include <unordered_set> using namespace std; unordered_set<int> mySet; // 创建一个空的 unordered_set你可以用列表初始化语法来初始化
std::unordered_set:unordered_set<int> mySet = {1, 2, 3, 4}; -
插入元素:
使用
insert函数向std::unordered_set中插入元素:mySet.insert(5); // 插入元素 5 -
查找元素:
使用
find函数查找元素,它返回一个迭代器指向该元素,如果元素不存在,则返回迭代器末尾:auto it = mySet.find(3); if (it != mySet.end()) { cout << "Found: " << *it << endl; } -
删除元素:
使用
erase函数删除元素,可以通过元素值或迭代器来指定要删除的元素:mySet.erase(2); // 删除元素 2 -
遍历:
使用范围循环或迭代器来遍历
std::unordered_set:for (int num : mySet) { cout << num << " "; }
std::unordered_set 在很多情况下是一个非常有用的容器,特别是在需要高效查找不重复元素的场景下。在前面的例子中,我在算法中使用 std::unordered_set 来记录包含 0 的行和列的索引,以便进行后续的清零操作。
本文介绍了C++标准库中的unordered_set容器,其基于哈希表实现,提供O(1)的插入、查找和删除操作。讲解了包含头文件、创建、初始化、插入、查找、删除和遍历等基本用法,并举例说明其在高效查找不重复元素的应用。

2369

被折叠的 条评论
为什么被折叠?



