vector删除指定元素
直奔主题,下面以vector
为例。
vector
是C++中的一个动态数组类型,它用size()
来返回当前存储的元素数量,用capacity()
返回容器当前可容纳的元素数量。
接口介绍
vector是非常常用的顺序容器,删除元素可以用到下面这些接口。
- pop_front() 删除首元素
- pop_back() 删除尾元素
- erase(p) 删除迭代器指定的元素,返回值为所删除元素的下一个元素的迭代器
- erase(b, e) 删除迭代器b和e所指定范围的元素
- clear() 删除所有元素,返回void
遍历删除
以下面这个为例,删除一个vector中数值为4的数字。
1 | int main() |
使用Lambda表达式
1 | int main() |
std::remove_if(begin, end, fun)
接收三个入参:
begin
迭代器开始位置end
迭代器结束位置fun
回调函数,如果函数返回为真,则将当前所指向的参数移到尾部。
std::remove_if(begin, end, fun)
返回值为被移除区域的首个元素。
通过Lambda表达式和remove_if
结合可以在容器中找到满足条件的元素,再结合erase
删除指定元素。