早些时候我问过this question关于如何创建我自己的set操作类的问题,例如十字路口,工会等。
我选择的答案作为我的解决方案推荐已经实施了这些操作的algorithm library。我想让这些操作适用于我的数据类型:
struct my_data_type {
int label;
vector<string> x;
vector<string> y;
string str;
};
因此建议我将这些内容包含在我的struct(或类)中:
我对C / C ++比较陌生,所以请问有人能为我提供这三个内容吗?那么如何使用我班上的一个操作(让我们说set_intersection(...)
?
谢谢。
答案 0 :(得分:2)
在这种情况下,编译器提供了所有三种的合适实现 - 没有必要再写任何东西,这样做会很糟糕,恕我直言。但是,您可能需要的是一个构造函数,它接受参数,构造一个正确初始化的对象,以及一个operator&lt;()的实现,以便可以比较您的结构。
不知道你的结构是做什么的,很难提供这些,但假设你的成员会有独特的标签,这就是你需要的东西:
struct my_data_type {
int label;
vector<string> x;
vector<string> y;
string str;
my_data_type( int l, const string & s ) : label( l ), str( s ) {}
bool operator<( const my_data_type & t ) const {
return label < t.label;
}
};