Я хочу написать класс C ++, который предлагает операции над множествами, которые работают с векторами строк и векторами моего собственного типа данных.Существуют ли простые способы сделать это, вместо того, чтобы писать разные функции для каждого типа данных?До сих пор я написал операции для строковых векторов.Ниже приведен пример моего набора объединений:
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 ++, поэтому любые комментарии к моей существующей функции также будут оценены.
Большое спасибо.