我有一個泛型類基礎:從基本檢查元素是否是存在於載體
class Basic
{
public:
Basic(string name): name(name){}
string Name() {return name;}
private:
string name;
};
class Basic2: public Basic
{
public:
Basic(string name, int value): Basic(name),value(value){}
string Name() {return name;}
private:
string name;
int value;
};
class Basic3: public Basic
{
public:
Basic(string name, string value2): Basic(name),value2(value2){}
string Name() {return name;}
private:
string name;
string value2;
};
其他三個類繼承,但具有不同的功能(我們姑且稱之爲Basic1,Basic2,Basic3)。 我有一個基本的向量:vector<Basic*> v
我知道如何在向量中插入元素。但我想檢查元素是否存在,並只在不存在時才插入。我認爲我不能用==比較像Basic1和Basic2這樣的不同類型?怎樣才能檢查我想插入的元素是否存在於矢量中? `
ü se ['std :: find_if'](http://en.cppreference.com/w/cpp/algorithm/find),指定「相等」標準(你沒有在你的問題中列出) – juanchopanza
和don不使用矢量。使用一個向量>或向量>。 –
@RichardHodges:你怎麼知道這個矢量擁有自己的語義? – Deduplicator