介绍
在本实验中,你将学习如何在 C++ 中实现和使用 std::unordered_set。集合(set)用于存储列表中的唯一值并自动对其进行排序。无序集合(unordered set)与集合类似,但它不会对元素进行排序,而是以随机顺序存储它们。它还会自动删除任何重复的元素。
在本实验中,你将学习如何在 C++ 中实现和使用 std::unordered_set。集合(set)用于存储列表中的唯一值并自动对其进行排序。无序集合(unordered set)与集合类似,但它不会对元素进行排序,而是以随机顺序存储它们。它还会自动删除任何重复的元素。
首先,创建一个项目文件夹来存放你的代码。打开终端并使用 cd 命令导航到该文件夹。
cd ~/project
touch main.cpp
使用你选择的任何文本编辑器创建一个名为 main.cpp 的新文件。
在这一步中,编写一个程序来演示 C++ 中 std::unordered_set 的工作原理。该程序将声明一个空的 std::unordered_set,填充一些元素,删除一个元素,然后打印集合中的元素。
首先包含必要的库,并创建一个 show 函数,使用迭代器打印无序集合中的元素。
#include <iostream>
#include <unordered_set>
void show(std::unordered_set<int> s)
{
std::unordered_set<int>::iterator it;
for (it = s.begin(); it != s.end(); ++it)
{
std::cout << *it << " ";
}
}
在这一步中,使用 insert 方法向 std::unordered_set 中填充六个整数。
int main()
{
std::unordered_set<int> s;
s.insert(5);
s.insert(39);
s.insert(64);
s.insert(82);
s.insert(35);
s.insert(54);
std::cout << "The elements of the unordered set are: \n";
show(s);
return 0;
}
在这一步中,使用 erase 方法从无序集合中删除一个元素,然后打印更新后的集合。
int main()
{
std::unordered_set<int> s;
s.insert(5);
s.insert(39);
s.insert(64);
s.insert(82);
s.insert(35);
s.insert(54);
std::cout << "The elements of the unordered set are: \n";
show(s);
s.erase(39);
std::cout << "\nAfter deleting the element 39 from the unordered set using the erase() method, it becomes: \n";
show(s);
return 0;
}
要编译并运行代码,请在终端中使用以下命令:
g++ main.cpp -o main && ./main
输出结果将是:
The elements of the unordered set are:
54 35 5 64 39 82
After deleting the element 39 from the unordered set using the erase() method, it becomes:
54 35 5 64 82
以下是 main.cpp 的完整代码:
#include <iostream>
#include <unordered_set>
void show(std::unordered_set<int> s)
{
std::unordered_set<int>::iterator it;
for (it = s.begin(); it != s.end(); ++it)
{
std::cout << *it << " ";
}
}
int main()
{
std::unordered_set<int> s;
s.insert(5);
s.insert(39);
s.insert(64);
s.insert(82);
s.insert(35);
s.insert(54);
std::cout << "The elements of the unordered set are: \n";
show(s);
s.erase(39);
std::cout << "\nAfter deleting the element 39 from the unordered set using the erase() method, it becomes: \n";
show(s);
return 0;
}
在本实验中,你学习了如何在 C++ 中实现和使用 std::unordered_set。std::unordered_set 用于存储唯一值,并自动删除任何重复项。与 std::set 不同,它不会对元素进行排序,而是以随机顺序存储它们。