gpt4 book ai didi

c++ - 如何比较 2 个 vector 并根据比较创建单独的 vector

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:15:11 26 4
gpt4 key购买 nike

我正在研究创建一个算法来比较 2 个 vector (v1v2),并创建一个新的 vector v3将保留 v1v2 之间不共享的值。

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main(int args[])
{
vector<int> v1 = { 1,2,3,4,5,6,7,8,9 };
vector<int> v2 = { 1,2,6 };
vector<int> v3; //V3 should equal = {3,4,5,7,8,9}.

return 0;
}

vector 将始终排序。

最佳答案

如果在您的示例中,范围已排序,那么您可以使用 std::set_symmetric_difference .它将返回两个范围之间不共享的所有元素。以你为例,你会使用

std::set_symmetric_difference(v1.begin(), v1.end(), v2.begin(), v2.end(), std::back_inserter(v3));

所以把它们放在一起我们有

int main()
{
std::vector<int> v1 = { 1,2,3,4,5,6,7,8,9 };
std::vector<int> v2 = { 1,2,6 };
std::vector<int> v3; //V3 should equal = {3,4,5,7,8,9}.

std::set_symmetric_difference(v1.begin(), v1.end(), v2.begin(), v2.end(), std::back_inserter(v3));

for (auto e : v3)
std::cout << e << " ";

return 0;
}

输出:

3 4 5 7 8 9

Live example

关于c++ - 如何比较 2 个 vector 并根据比较创建单独的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43099696/

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