gpt4 book ai didi

c++ - 从函数返回两个 vector 的交集

转载 作者:行者123 更新时间:2023-11-30 03:54:29 45 4
gpt4 key购买 nike

有人可以帮我吗,为什么我稍后在单独的函数中打印出结果 vector out_v 时似乎无法设置交集?我不知道出了什么问题,我正在使用指向 Array* operator+ (Array* inp_v) 下面的函数的指针传递 vector ,该函数稍后应该从 set_intersection 返回指向结果 vector 的指针。会不会是我的 set_intersection 不起作用或者是其他原因?
我已经包含了所有必需的 STL header 。

Array* operator+ (Array* inp_v)
{

XorArray *v1 = (XorArray *)inp_v;
XorArray *out_v = new XorArray();
vector<double>::iterator iVect1 = v1->vect.begin();
vector<double>::iterator iVect2 = this->vect.begin();

vector<double> Result;

sort(iVect1, v1->vect.end());
sort(iVect2, this->vect.end());

vector<double>::iterator newEnd = set_intersection(iVect1, v1>vect.end(), iVect2, this->vect.end(),Result.begin());

while (newEnd != Result.end()
{
out_v->vect.push_back(*newEnd);
++newEnd;
}

return out_v;
}

最佳答案

一个主要问题是 result vector 是,这意味着 result.begin() == result.end() .要在 result vector 中添加新项目,您需要使用例如 std::back_inserter .

我建议您查看 std::set_intersection引用。

关于c++ - 从函数返回两个 vector 的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29492447/

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