假设我创建了一个构造函数Set::Set(vector<int> &v)
,它接受一个向量并保存它。
我有一个Union方法,它接受类型Set的参数,并将其向量与原始Set的内容进行比较,该值从开头的构造函数初始化。
如何使用this
运算符执行此操作?我知道联合函数是如何工作的,但我不明白的是如何从Union方法的参数中获得向量。
class Set
{
public:
Set(vector<int> &);
void setter(vector<int> &);
Set Union(Set);
private:
vector<int> originalSet;
};
Set Set::Union(Set s)
{
}
Set::Set(vector<int> &v)
{
setter(v);
}
void Set::setter(vector <int> &v)
{
originalSet = v;
}
答案 0 :(得分:1)
在你的功能中:
Set Set::Union(const Set& s) // take by const&
{
originalSet; // this is the set owned by "this" object
s.originalSet; // this is the set owned the Set passed in
// so one [wrong] implementation might be to just combine them
Set full(originalSet);
full.originalSet.insert(full.originalSet.back(),
s.originalSet.begin(),
s.originalSet.end());
return full;
}
这显然不是Union
的正确实现,但它应该向您展示正确编写它所需的工具。