检查元素是否存在
本课属于 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() 验证用户输入、防止错误,或根据集合当前存储的内容做出决定。
挑战
简单创建一个程序,演示如何在对元素执行操作之前,安全地检查 std::set 中是否存在这些元素。这个挑战将测试你对用于验证元素的 .count() 方法的理解。
程序将接收以下输入:
- 一个整数
n,表示最初要添加到集合中的元素数量 - 接下来是
n个要插入集合的整数 - 一个整数
m,表示要搜索的元素数量 - 接下来是
m个要检查是否存在于集合中的整数
你的程序应该:
- 创建一个空的
std::set<int> - 读取要添加的元素数量,并使用
.insert()将这些元素插入集合 - 读取要搜索的元素数量
- 对于每个要搜索的元素,使用
.count()方法检查它是否存在于集合中 - 根据每个元素是否找到,打印相应的消息
- 完成所有搜索后,打印找到的元素总数
请使用以下准确的输出格式:
对于每个搜索结果:
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;
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: C++ 在线编译器