Menu
CoddyTech

检查元素是否存在

本课属于 Coddy C++ 学习旅程的“逻辑与流程”单元。第 37 课,共 56 课。

处理集合时,你通常需要先检查某个元素是否存在,再对它执行操作。.count() 方法可以让你轻松确认集合中是否包含该元素。

和字典一样,如果元素存在于集合中,.count() 方法会返回 1;如果不存在,则返回 0。这让它非常适合用于条件检查:

std::set<int> numbers = {10, 20, 30};

if (numbers.count(20)) {
    std::cout << "Found 20 in the set!" << std::endl;
} else {
    std::cout << "20 is not in the set" << std::endl;
}

这种方法比直接访问元素安全得多,尤其是在你不确定元素是否存在时。你可以使用 .count() 验证用户输入、防止错误,或根据集合当前存储的内容做出决定。

challenge icon

挑战

简单

创建一个程序,演示如何在对元素执行操作之前,安全地检查 std::set 中是否存在这些元素。这个挑战将测试你对用于验证元素的 .count() 方法的理解。

程序将接收以下输入:

  • 一个整数 n,表示最初要添加到集合中的元素数量
  • 接下来是 n 个要插入集合的整数
  • 一个整数 m,表示要搜索的元素数量
  • 接下来是 m 个要检查是否存在于集合中的整数

你的程序应该:

  1. 创建一个空的 std::set<int>
  2. 读取要添加的元素数量,并使用 .insert() 将这些元素插入集合
  3. 读取要搜索的元素数量
  4. 对于每个要搜索的元素,使用 .count() 方法检查它是否存在于集合中
  5. 根据每个元素是否找到,打印相应的消息
  6. 完成所有搜索后,打印找到的元素总数

请使用以下准确的输出格式:

对于每个搜索结果:

Searching for [number]: Found

对于未找到的元素:

Searching for [number]: Not found

最后的汇总:

Total found: [count] out of [total_searches]

使用 numbers.count(searchValue) 检查集合中是否存在某个元素。如果返回 1,表示该元素存在;如果返回 0,表示该元素不存在。使用一个计数器,记录搜索过程中成功找到的元素数量。

亲手试试

#include <iostream>
#include <set>
using namespace std;

int main() {
    // 读取要添加到集合中的元素数量
    int n;
    cin >> n;
    
    // 创建一个空集合
    set<int> numbers;
    
    // 读取 n 个元素并将它们插入集合
    for (int i = 0; i < n; i++) {
        int element;
        cin >> element;
        numbers.insert(element);
    }
    
    // 读取要查找的元素数量
    int m;
    cin >> m;
    
    int foundCount = 0;
    
    // TODO: 在下方编写你的代码
    // 对于每个要查找的元素:
    // 1. 读取要查找的值
    // 2. 用 numbers.count(searchValue) 检查它是否存在
    // 3. 输出相应的消息
    // 4. 如果找到该元素,更新 foundCount
    
    // 输出汇总结果
    cout << "Total found: " << foundCount << " out of " << m << endl;
    
    return 0;
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: C++ 在线编译器