C++ STL Set 的 find() 方法

C++Beginner
立即练习

介绍

在本实验中,你将学习 C++ 编程中 STL Set 的 find() 方法。Set 用于存储唯一的值列表,并自动为其元素提供排序。默认情况下,排序是升序的。find() 方法返回一个指向集合容器中搜索到的元素的迭代器。如果未找到该元素,迭代器将指向集合中最后一个元素之后的位置。

包含必要的头文件

在第一步中,我们包含必要的头文件 iostreamset

#include <iostream>
#include <set>

使用标准命名空间

在第二步中,我们使用标准命名空间。

using namespace std;

声明集合

在第三步中,我们声明一个用于存储整数的集合。

set<int> s;

向集合中插入元素

在第四步中,我们向集合中插入整数元素。

s.insert(5);
s.insert(39);
s.insert(64);
s.insert(82);
s.insert(35);
s.insert(54);

打印集合中的元素

在第五步中,我们使用迭代器打印集合中的元素。

for (auto it = s.begin(); it != s.end(); ++it) {
        cout << " " << *it;
}

在集合中查找元素

在第六步中,我们使用 find() 方法在集合中查找一个元素。

auto it = s.find(39);

打印大于给定元素的元素

在第七步中,我们使用 find() 方法打印集合中大于或等于所查找元素的元素。

for (; it != s.end(); ++it) {
        cout << " " << *it;
}

从集合中删除元素

在第八步中,我们使用 erase() 方法从集合中删除一个元素。

s.erase(39);

完整代码

#include <iostream>
#include <set>

using namespace std;

int main() {
    // 声明一个集合
    set<int> s;

    // 向集合中插入元素
    s.insert(5);
    s.insert(39);
    s.insert(64);
    s.insert(82);
    s.insert(35);
    s.insert(54);

    // 打印集合中的元素
    for (auto it = s.begin(); it != s.end(); ++it) {
        cout << " " << *it;
    }

    // 在集合中查找元素
    auto it = s.find(39);

    // 打印大于给定元素的元素
    for (; it != s.end(); ++it) {
        cout << " " << *it;
    }

    // 从集合中删除元素
    s.erase(39);

    return 0;
}

总结

在本实验中,你学习了如何在 C++ 编程中使用 STL Set 的 find() 方法。你还学习了如何声明一个集合、向集合中插入元素、打印集合中的元素、从集合中删除元素,以及使用 find() 方法在集合中查找元素。

你还了解了集合的唯一性和元素的自动排序特性。你可以利用这些关于 find() 和集合的基础知识,在 C++ 中执行更复杂的集合操作。