2014-11-08 63 views
0

假設我創建了一個構造函數Set::Set(vector<int> &v),該構造函數接受一個向量並將其保存。 而且我有一個Union方法,它接受Set類型的參數,並將其向量與從開始時從構造函數初始化的originalSet的內容進行比較。使用相同的對象來比較彼此的向量

你如何去做與this運算符?我知道聯合函數是如何工作的,但我不明白的是如何從聯合方法的論點中獲得向量。

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

getter方法呢?我不完全瞭解你的問題.. – 2014-11-08 23:48:02

回答

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明顯,但它應該告訴你,你需要把它寫正確的工具。