gpt4 book ai didi

c++ - 一个通用的集合操作类,即交集、并集、减号等

转载 作者:太空狗 更新时间:2023-10-29 23:47:19 25 4
gpt4 key购买 nike

我想编写一个 C++ 类,它提供适用于字符串 vector 和我自己的数据类型的 vector 的集合操作。有什么简单的方法可以做到这一点而不是为每种数据类型编写不同的函数吗?到目前为止,我已经编写了字符串 vector 的操作。下面显示了我的集合并集的示例:

vector<string> SetOperations::set_union(vector<string> set1,
vector<string> set2) {
for(std::vector<int>::size_type i = 0; i < set1.size(); i++) {
set1.push_back(set2.at(i));
}
return set1;
}

所以我又想要同样的东西,但是在哪里 string是说my_data_type这是各种成员的结构。假设它看起来像这样:

struct my_data_type {
int label;
vector<string> x;
vector<string> y;
string str;
};

每种数据类型的函数也不会像我的 set_union(...) 那样简单函数,因为我肯定需要测试 my_data_type 的每个成员是否相等在集合交集的情况下?

此外,我对 C++ 还很陌生,所以对我现有函数的任何评论也将不胜感激。

非常感谢。

最佳答案

其中一些已经存在并且在算法头中:

  • set_union
  • 设置差异
  • 设置交叉路口
  • 设置对称差异

这些都支持比较器功能,因此您可以对自己的所有数据类型执行此操作。或者如其他回复中所述,使您的容器符合 STL 要求。

参见:http://www.cplusplus.com/reference/algorithm/

关于c++ - 一个通用的集合操作类,即交集、并集、减号等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6292766/

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