擦除从对象传染媒介的传染媒介元素由价值

时间:2016-07-27 14:29:22

标签: c++ vector

我有一个学生对象的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}]

1 个答案:

答案 0 :(得分:0)

std::remove_if就是您所需要的:

myVector.erase(std::remove_if(myVector.begin(), myVector.end(), 
  [](students const& s) { return s.name == "David"; }), myVector.end());