c++ - 可以使用 pop_back 从 vector 中删除某些值吗?

标签 c++ algorithm vector element

<分区>

我有一个简单的问题。我有一个 vector :

vector<int> SomeVector;

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

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

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

  • 我可能不知道值为-1的元素的索引
  • 我可能不知道 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_backback() 之类的东西结合使用会将 vector 视为堆栈,并弹出与 -1 一样多的 -1在它的尽头。

关于c++ - 可以使用 pop_back 从 vector 中删除某些值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42342775/

相关文章:

sql - 挑战,如何实现六度分离的算法?

python - 用于查找子图同构的 QuickSI 算法

c++ - 排序函数替换值时出现问题

c++ - OpenCV - API 位置不是文档吗?

c++ - 如何在不包含 Windows.h 的情况下获取 IsDebuggerPresent 的声明?

algorithm - 表示连续概率分布

java - Java调用 "call"方法时无法存储Vector数据

c++ - 隐式转换为 std::vector

java - 使用 jni 时在 std::_List_const_iterator<Exiv2::Exifdatum>::operator++ 中获取 SIGSEGV

c++ - 在 Unix 上编译所有的 boost 库?