首页 >后端开发 >C++ >如何从STL向量中删除具有特定值的元素?

如何从STL向量中删除具有特定值的元素?

Patricia Arquette
Patricia Arquette原创
2024-11-21 05:57:09962浏览

How to Remove Elements with a Specific Value from an STL Vector?

从 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn