<分区>
我有一个简单的问题。我有一个 vector :
vector<int> SomeVector;
里面有一些元素,比如说:
{-1, -1, -1, -1, 3, 8, 255}
有没有办法使用 pop_back 从这个 vector 中删除所有值为 -1 的元素?或者如果有任何其他方式也将受到欢迎但是:
- 我可能不知道值为-1的元素的索引
- 我可能不知道 vector 中有多少个-1
刚来这里的新学生,任何帮助都会很棒,在此先感谢...
<分区>
我有一个简单的问题。我有一个 vector :
vector<int> SomeVector;
里面有一些元素,比如说:
{-1, -1, -1, -1, 3, 8, 255}
有没有办法使用 pop_back 从这个 vector 中删除所有值为 -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()
之类的东西结合使用会将 vector 视为堆栈,并弹出与 -1
一样多的 -1
在它的尽头。
关于c++ - 可以使用 pop_back 从 vector 中删除某些值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42342775/