gpt4 book ai didi

c++ - 获取两个数组之间的差异

转载 作者:行者123 更新时间:2023-11-28 01:17:25 25 4
gpt4 key购买 nike

我有 2 个字符串表,我想显示两个表之间的差异。

示例:

Tab1 = "user1, user2, user3, user4"
Tab2 = "user3, user4, user2"

这种情况下的区别在于 user 1 丢失了。

我想知道在标准库或 Qt 中是否有允许您执行此操作的函数。

提前谢谢你。

最佳答案

您需要的是 std::set_difference,它会将排序后的 v1 中未在排序后的 v2 中找到的元素复制到差异。如前所述,您应该首先对 vector 进行排序,然后搜索差异。

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

int main() {
std::vector<std::string> v1 { "user1", "user2", "user3", "user4" };
std::vector<std::string> v2 { "user3", "user4", "user2" };
std::vector<std::string> diff;

std::sort(v1.begin(), v1.end());
std::sort(v2.begin(), v2.end());
std::set_difference(v1.begin(), v1.end(), v2.begin(), v2.end(),
std::inserter(diff, diff.begin()));

for (auto const& i : diff)
std::cout << i << std::endl;
}

关于c++ - 获取两个数组之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58214627/

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