在 C++ 中,std::set
是一个关联容器,它存储唯一的元素,并且元素会自动按键排序。要对两个 std::set
进行集合比较,你可以使用 C++ 标准库中的
头文件提供的 std::equal
函数。
下面是一个简单的示例,展示了如何使用 std::equal
函数比较两个 std::set
:
#include#include #include int main() { std::set set1 = {1, 2, 3, 4, 5}; std::set set2 = {1, 2, 3, 4, 5}; std::set set3 = {1, 2, 3, 6, 7}; bool isEqual1 = std::equal(set1.begin(), set1.end(), set2.begin()); bool isEqual2 = std::equal(set1.begin(), set1.end(), set3.begin()); std::cout << "set1 and set2 are " << (isEqual1 ? "equal" : "not equal") << std::endl; std::cout << "set1 and set3 are " << (isEqual2 ? "equal" : "not equal") << std::endl; return 0; }
在这个示例中,我们创建了三个 std::set
对象:set1
、set2
和 set3
。然后,我们使用 std::equal
函数比较 set1
和 set2
,以及 set1
和 set3
。std::equal
函数接受两个迭代器范围(在这里是 set1
和 set2
或 set1
和 set3
的开始和结束迭代器)以及一个源范围的开始迭代器。如果两个范围内的元素相等且顺序相同,std::equal
将返回 true
,否则返回 false
。
输出结果将是:
set1 and set2 are equal set1 and set3 are not equal