取自C++ Erase vector element by value rather than by position?
答案指出,如果你有一个int的向量,你可以使用erase-remove惯用法来删除一个元素,就像它的值一样:
vec.erase(std::remove(vec.begin(), vec.end(), 8), vec.end());
其中8是列表中的元素。
我的问题是,使用相同的技术可以删除带指针的指针元素作为值,如下所示:
std::vector<T*> m_list;
T* value;
m_list.erase(std::remove(m_list.begin(), m_list.end(), value), m_list.end());
鉴于“value”是列表中的元素。