2017-02-20 55 views
1

我有一個簡單的問題。我有一個向量:可以使用pop_back從矢量中刪除某些值嗎?

vector<int> SomeVector; 

這裏面有一些元素,說:

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

有沒有一種方法,以消除同值的所有元素-1使用pop_back這個載體?或者,如果有是也將歡迎任何其他方式,但:

  • 我可能不知道有值-1
  • 元素的索引我可能不知道有多少-1的有在矢量

只是一個新的學生在這裏,任何幫助將是巨大的,在此先感謝...

+0

['std :: remove_if()'](http://en.cppreference.com/w/cpp/algorithm/remove)怎麼樣? –

回答

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_back加上類似back()之類的東西,會將矢量當作堆棧,並彈出儘可能多的-1,就像在末尾一樣。