📅  最后修改于: 2023-12-03 15:13:45.686000             🧑  作者: Mango
在C++中,我们可以使用无序对(unordered_set
)来存储不重复的值。无序对集与有序对集(set
)类似,但是它们不会以任何特定的顺序存储值。这使得无序对的查找速度非常快。
我们可以使用以下语法来创建一个无序对集:
#include <unordered_set>
std::unordered_set<int> mySet;
这将创建一个空的无序对集,其中元素类型为整数(int
)。我们也可以在创建时初始化无序对集,例如:
#include <unordered_set>
std::unordered_set<int> mySet = {1, 2, 3, 4};
这将创建一个包含整数1
,2
,3
和4
的无序对集。
我们可以使用insert()
函数插入元素,例如:
mySet.insert(5);
这将插入整数5
到无序对集中。我们可以使用count()
函数来查找元素是否存在于无序对集中,例如:
if (mySet.count(5) > 0) {
std::cout << "5 is in mySet" << std::endl;
}
这将输出5 is in mySet
。
我们还可以使用迭代器(iterator
)来访问无序对集中的所有元素。例如:
for (auto it = mySet.begin(); it != mySet.end(); ++it) {
std::cout << *it << std::endl;
}
这将按任意顺序输出无序对集中的所有元素。
我们可以使用erase()
函数删除无序对集中的元素。例如:
mySet.erase(5);
这将从无序对集中删除整数5
。
下面是一个简单的示例程序,演示了如何使用无序对集:
#include <iostream>
#include <unordered_set>
int main() {
std::unordered_set<int> mySet = {1, 2, 3, 4};
mySet.insert(5);
if (mySet.count(5) > 0) {
std::cout << "5 is in mySet" << std::endl;
}
mySet.erase(5);
for (auto it = mySet.begin(); it != mySet.end(); ++it) {
std::cout << *it << std::endl;
}
return 0;
}
输出:
5 is in mySet
4
3
2
1