我有一个学生对象的c ++向量,每个对象都有一个ID(字符串),名字(字符串)和年龄(int)。
std::vector<student> myVector;
让我们说矢量看起来像这样
[{&#34; 1&#34;,&#34; Tom&#34;,12},{&#34; 2&#34;,&#34; David&#34;,10},{& #34; 3&#34;,&#34; Adam&#34;,15},{&#34; 4&#34;,&#34; Jill&#34;,20}]
有没有办法可以使用学生名称删除矢量中的对象,如:
myVector.deleteObjectWithName(David)
这样我的剩余矢量现在是
[{&#34; 1&#34;,&#34; Tom&#34;,12},{&#34; 3&#34;,&#34; Adam&#34;,15},{& #34; 4&#34;,&#34; Jill&#34;,20}]
答案 0 :(得分:0)
std::remove_if
就是您所需要的:
myVector.erase(std::remove_if(myVector.begin(), myVector.end(),
[](students const& s) { return s.name == "David"; }), myVector.end());