使用相同的对象来比较彼此的向量

时间:2014-11-08 23:46:09

标签: c++ oop vector this

假设我创建了一个构造函数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;
}

1 个答案:

答案 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的正确实现,但它应该向您展示正确编写它所需的工具。