首页主机资讯c++ 中的 set 如何进行集合比较

c++ 中的 set 如何进行集合比较

时间2025-09-27 15:16:03发布访客分类主机资讯浏览241
导读:在 C++ 中,std::set 是一个关联容器,它存储唯一的元素,并且元素会自动按键排序。要对两个 std::set 进行集合比较,你可以使用 C++ 标准库中的 <algorithm> 头文件提供的 std::equal 函...

在 C++ 中,std::set 是一个关联容器,它存储唯一的元素,并且元素会自动按键排序。要对两个 std::set 进行集合比较,你可以使用 C++ 标准库中的 < algorithm> 头文件提供的 std::equal 函数。

下面是一个简单的示例,展示了如何使用 std::equal 函数比较两个 std::set

#include <
    iostream>
    
#include <
    set>
    
#include <
    algorithm>


int main() {
    
    std::set<
    int>
 set1 = {
1, 2, 3, 4, 5}
    ;
    
    std::set<
    int>
 set2 = {
1, 2, 3, 4, 5}
    ;
    
    std::set<
    int>
 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 对象:set1set2set3。然后,我们使用 std::equal 函数比较 set1set2,以及 set1set3std::equal 函数接受两个迭代器范围(在这里是 set1set2set1set3 的开始和结束迭代器)以及一个源范围的开始迭代器。如果两个范围内的元素相等且顺序相同,std::equal 将返回 true,否则返回 false

输出结果将是:

set1 and set2 are equal
set1 and set3 are not equal

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: c++ 中的 set 如何进行集合比较
本文地址: https://pptw.com/jishu/710122.html
c++ 编译指令如何设置目标平台 c++ 编译指令如何设置编译器版本

游客 回复需填写必要信息