vector删除元素
发布网友
发布时间:2024-10-21 23:46
我来回答
共1个回答
热心网友
时间:2024-11-14 11:51
c++的vector是一种非常方便的数据结构,与数组相比,它不需要预先定义维度。
之前一直使用push_back来添加元素到vector中,但最近需要删除vector中最开始的两个元素。
最初尝试使用trace_list.pop_back()方法,但发现删除的是vector的最后两个元素,而不是开始的两个。
之后发现可以使用erase方法来删除vector的最开始的两个元素。
需要注意的是,使用两次erase方法可以删除元素1和元素2,例如:
auto iter = demo.erase(demo.begin());//删除元素 1
iter = demo.erase(demo.begin());//删除元素 2
这等价于使用一次erase方法,例如:
auto iter = demo.erase(demo.begin(), demo.begin()+2);//删除元素 1,2
这种方法类似于list的删除方式,即删除指定区域内的所有元素,并返回指向被删除区域下一个位置元素的迭代器。
需要注意的是,erase方法删除vector容器中位于迭代器[beg,end)指定区域内的所有元素,并返回指向被删除区域下一个位置元素的迭代器。该容器的大小(size)会减小,但容量(capacity)不会发生改变。