gpt4 book ai didi

c++ - 使用 set_union 未正确分配字符串 vector

转载 作者:太空宇宙 更新时间:2023-11-04 16:31:32 25 4
gpt4 key购买 nike

我想我对 C/C++ 中的赋值缺乏一些基本的了解!我有一个函数可以计算两个字符串 vector 之间的集合并集。我这样做的原因是因为算法库的函数 set_union 要求首先对两个 vector 进行排序,如果我按照以下方式进行排序,那么我就不会忘记排序:

vector<string> SetOperations::my_set_union(vector<string> set1,
vector<string> set2) {
sort(set1.begin(), set1.end());
sort(set2.begin(), set2.end());

vector<string> v;
set_union(set1.begin(), set1.end(), set2.begin(), set2.end(), back_inserter(v));
return v;
}

然后我执行以下操作:

vector<string> vec = set_ops.my_set_union(vec1, vec2);

其中 vec1vec2 是包含单个 "a""a" 的字符串 vector ,并且set_ops 是一个类的实例,我在其中设置了这些操作(如上面的那个)。它们肯定都具有这些元素 - 我已经打印出这两个 vector 。

出于某些(简单的?)原因,vec 最终只有一个元素 "a" 而不是两个元素("a"“a”)。

知道我做错了什么吗?我是想复制功能还是什么?

谢谢 :).

最佳答案

您必须使用merge 而不是set_unionset_union 将消除相似的条目。

参见 mergeset_union引用文献。

关于c++ - 使用 set_union 未正确分配字符串 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6336442/

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