输入两个集合AB,判断A是否是B的子集 c++
时间: 2024-09-10 21:15:42 浏览: 76
在C++中,你可以使用集合(set或unordered_set)的特性来判断一个集合A是否是另一个集合B的子集。这里我们可以用`std::set`为例,因为集合的插入操作是自动去重的,所以可以直接比较两个集合的大小关系来确定子集关系。
下面是一个简单的示例:
```cpp
#include <iostream>
#include <set>
bool isSubset(const std::set<int>& A, const std::set<int>& B) {
// 检查A的所有元素是否都在B中
for (const auto& a : A) {
if (B.find(a) == B.end()) { // 如果在B中找不到a,则A不是B的子集
return false;
}
}
return true; // 如果遍历完A所有元素都没返回false,说明A是B的子集
}
int main() {
std::set<int> setA = {1, 2, 3};
std::set<int> setB = {1, 2, 3, 4, 5};
if (isSubset(setA, setB)) {
std::cout << "Set A is a subset of Set B." << std::endl;
} else {
std::cout << "Set A is not a subset of Set B." << std::endl;
}
return 0;
}
```
在这个例子中,`isSubset`函数会检查集合A中的每个元素是否都存在于集合B中。如果存在,那么继续下一个元素;如果某个元素不在B中,函数就立即返回`false`。如果整个A都被检查完毕都没有发现不匹配的元素,那么返回`true`表示A是B的子集。
阅读全文