pop_back可以用来从向量中删除某些值吗?

时间:2017-02-20 11:00:33

标签: c++ algorithm vector element

我有一个简单的问题。我有一个矢量:

vector<int> SomeVector;

里面有一些元素,比如说:

{-1, -1, -1, -1, 3, 8, 255}

有没有办法使用pop_back从这个向量中删除值为-1的所有元素?或者,如果有任何其他方式也会受到欢迎但是:

  • 我可能不知道值为-1
  • 的元素的索引
  • 我可能不知道向量中有多少-1

这里只是一名新生,任何帮助都会很棒,提前谢谢......

1 个答案:

答案 0 :(得分:1)

我会将erase-remove idiom用于此类任务

// Remove all elements with value -1 from the vector
vec.erase(std::remove(vec.begin(), vec.end(), -1), vec.end());

仅将pop_backback()结合使用会将向量视为一个堆栈,并弹出尽可能多的-1