C++ STL Set 的 find() 方法

C++C++Beginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("`C++`")) -.-> cpp/BasicsGroup(["`Basics`"]) cpp(("`C++`")) -.-> cpp/ControlFlowGroup(["`Control Flow`"]) cpp(("`C++`")) -.-> cpp/AdvancedConceptsGroup(["`Advanced Concepts`"]) cpp(("`C++`")) -.-> cpp/IOandFileHandlingGroup(["`I/O and File Handling`"]) cpp(("`C++`")) -.-> cpp/StandardLibraryGroup(["`Standard Library`"]) cpp(("`C++`")) -.-> cpp/SyntaxandStyleGroup(["`Syntax and Style`"]) cpp/BasicsGroup -.-> cpp/data_types("`Data Types`") cpp/BasicsGroup -.-> cpp/operators("`Operators`") cpp/ControlFlowGroup -.-> cpp/for_loop("`For Loop`") cpp/AdvancedConceptsGroup -.-> cpp/pointers("`Pointers`") cpp/IOandFileHandlingGroup -.-> cpp/output("`Output`") cpp/StandardLibraryGroup -.-> cpp/standard_containers("`Standard Containers`") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("`Code Formatting`") subgraph Lab Skills cpp/data_types -.-> lab-96236{{"`C++ STL Set 的 find() 方法`"}} cpp/operators -.-> lab-96236{{"`C++ STL Set 的 find() 方法`"}} cpp/for_loop -.-> lab-96236{{"`C++ STL Set 的 find() 方法`"}} cpp/pointers -.-> lab-96236{{"`C++ STL Set 的 find() 方法`"}} cpp/output -.-> lab-96236{{"`C++ STL Set 的 find() 方法`"}} cpp/standard_containers -.-> lab-96236{{"`C++ STL Set 的 find() 方法`"}} cpp/code_formatting -.-> lab-96236{{"`C++ STL Set 的 find() 方法`"}} end

包含必要的头文件

在第一步中,我们包含必要的头文件 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++ 中执行更复杂的集合操作。

您可能感兴趣的其他 C++ 教程