私は以下のクラスを持っている:仮想クラスメソッドでstd :: vector :: remove()を使用するには?
template <class T>
class BeliefSet : public Belief<T>
{
private:
std::vector<T> m_Facts;
public:
void RemoveFact(const T Fact)
{
m_Facts.remove(Fact);
}
};
これが正常に動作します。
今のようにすぐに私は、私はこのエラーを取得するコンパイルと/* Rest of this class has not been changed. */
virtual void RemoveFact(const T Fact)
{
m_Facts.remove(Fact);
}
:
error C2039: 'remove': is not a member of 'std::vector<std::string,std::allocator<_Ty>>'
しかし、私はこのように、私は次のように上記のコードを変更し、
BeliefSet
から別のクラスを派生し、この方法
RemoveFact()
を上書きしたいです
私がここで間違っていることは何ですか?
これは[MCVE] – StoryTeller
のstd ::ベクトルが実際に削除を持っていない()関数ではないではありません。あなたの最初の例は実際には間違っていると思います。 – nos
''うまく動作する '' remove() 'の完全な動作例を見せてもらえますか?私が知る限り、 'remove()'は 'std :: vector <>'ではなく 'std :: list <>'のメソッドです。 – max66