从 stl 向量中删除具有特定值的元素
STL 向量是 C 中流行的容器,但他们的 API 缺乏基于删除元素的方法关于他们的价值观。这就提出了一个问题:
如何根据其值从 stl 向量中删除项目?
尽管向量类中没有专用方法,有一个使用标准库函数的解决方案。
解决方案:
使用 std::remove 函数,它不会直接从容器中删除元素,而是重新排列它们。它将不应该被删除的元素移动到容器的开头,并返回一个指向它们之后的下一个元素的迭代器。
要完成删除过程,请将此迭代器传递给container_type::erase,它实际上会删除额外的元素现在位于容器的末尾。下面是一个示例:
std::vector<int> vec; // Populate the vector... int int_to_remove = n; vec.erase(std::remove(vec.begin(), vec.end(), int_to_remove), vec.end());
此代码首先使用 std::remove 来识别不要删除的元素并将其移动到向量的开头。然后,调用 vec.erase 从容器中永久删除这些额外元素。
以上是如何从STL向量中删除具有特定值的元素?的详细内容。更多信息请关注PHP中文网其他相关文章!