景德镇市网站建设_网站建设公司_RESTful_seo优化
2025/12/22 1:23:27 网站建设 项目流程

题目链接:判断集合成员

题目描述

请你编写一个程序,判断给定的整数 n 是否存在于给定的集合中。

输入描述

有多组测试数据,第一行有一个整数 k,代表有 k 组测试数据。
每组数据第一行首先是一个正整数 m,表示集合中元素的数量(1 <= m <= 1000)。 
接下来一行包含 m 个整数,表示集合中的元素。 
最后一行包含一个整数 n,表示需要进行判断的目标整数。

输出描述

包含多组输出,每组输出占一行。 
如果集合中存在 m,输出“YES”,否则输出“NO”。

输入示例

2
5
1 2 3 4 5
3
6
1 2 3 4 5 6
7

输出示例

YES
NO
点击查看代码
#include<iostream>
#include<unordered_set>
using namespace std;
int main(){int k, m, val, n;cin >> k;while(k--){cin >> m;unordered_set<int> uset;while(m--){cin >> val;uset.insert(val);}cin >> n;if(uset.find(n) != uset.end()) cout << "YES" << endl;else cout << "NO" << endl;}
![1000003447](https://img2024.cnblogs.com/blog/3743136/202512/3743136-20251222005934276-1095527068.png)return 0;
}
小结

题目思路

建立无序集合 unordered_set<int> uset;
将数插入集合
通过 if(uset.find(n) != uset.end())判断是否集合成员

知识点

集合

1000003447

头文件#include <unordered_set>#include <set>建立集合unordered_set<int> mySet;set<int> mySet;multiset<int> myMultiSet;方法insert()erase()find() //find() 方法用于查找特定元素是否存在于集合中。//如果找到了,返回指向元素的迭代器,如果不存在,则最终指向end()的迭代器//通过与返回值对比,判断是否在集合中//if (uset.find(n) != uset.end()) 

迭代器(iterator)

迭代器iterator提供了一种类似指针的接口
可以用来遍历访问容器(比如数组、集合)中的元素,并执行各种操作。迭代器都拥有名为begin()和end()的成员
表示指向第一个元素和最后一个元素的下一个元素的迭代器
如果容器为空,则begin和end返回的是同一个迭代器可以使用比较运算符来判断两个迭代器是否相等
如果迭代器想要从一个元素移动到另外一个元素,可以使用递增++运算符和递减--运算符通过解引用*可以获取迭代器所指的对象

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询