gpt4 book ai didi

c++ - set_union 和 set_intersection 的问题 - C++

转载 作者:行者123 更新时间:2023-11-28 06:45:36 26 4
gpt4 key购买 nike

我目前正在从事一个涉及集合计算的项目。我正在使用函数 set_union 和 set_intersection 来计算集合的并集和交集。我的变量是:

    int AunionB[8];
int AunionC[7]; // define AunionC
int BunionD[9]; // define BunionD
int AintersectB[4]; // define AintersectB
int AintersectC[3]; // define AintersectC
set<int> finalUnion; // final union of A, B, C, D
set<int> finalIntersection; // final intersection of A, B, C, D

这些分别是四个集合的并集和交集:setA、setB、setC 和 setD。我的 set_union 函数如下:

    set_union(AunionC, AunionC+7, BunionD, BunionD+9, finalUnion.begin());

而我的set_intersection函数如下:

    set_intersection(AintersectB, AintersectB+4, AintersectC, 
AintersectC+3, finalIntersection.begin());

当我编译时,我收到错误“Required from here”,我不确定其含义。有人可以帮我吗?我相信这与 set_union 和 set_intersection 函数及其参数有关,但我不确定。

最佳答案

改用

#include <iterator>

//...

set_union( AunionC, AunionC+7, BunionD, BunionD+9,
std::inserter( finalUnion, finalUnion.begin() ) );

set_intersection(AintersectB, AintersectB+4, AintersectC, 
AintersectC+3, std::inserter( finalIntersection, finalIntersection.begin() ) );

一个示范性的例子

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


int main()
{
int a[] = { 1, 3, 5 };
int b[] = { 0, 2, 4, 6 };
std::set<int> s;

std::set_union( std::begin( a ), std::end( a ),
std::begin( b ), std::end( b ),
std::inserter( s, s.begin() ) );

for ( int x : s ) std::cout << x << ' ';
std::cout << std::endl;
return 0;
}

输出是

0 1 2 3 4 5 6

关于c++ - set_union 和 set_intersection 的问题 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25069970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com