vector 如何获取并删除一个元素?

一个vector,我想从其中取出一个元素,同时从队列中将其删除,请问应该调用什么函数?
最新回答
暧昧不是爱情是毒药

2023-12-11 23:26:49

pop_back () 操作。

----------------------------------------------
#include <vector>
using namespace std;
void main(void)
{
vector<int> array;
array.push_back(1);
array.push_back(2);
array.push_back(3);
array.push_back(4);
array.push_back(5);

vector<int>::iterator itr = array.begin();
while (itr != array.end)
{
if (*itr == 3)array.erase(itr);//删除值为3的元素
++itr;
}
}
//若是最后一个可用array.pop_back()

-------------------
删除所有偶数项,并打印出删除的项
1. vector/queue
正确方法1:
void erase(vector<int> &v)
{
for(vector<int>::iterator vi=v.begin();vi!=v.end();)
{
if(*vi % 2 == 0)
{
cout << "Erasing " << *vi << endl;
vi = v.erase(vi);
}
else ++vi;
}
}

正确方法2:
void erase2(vector<int> &v)
{
for(vector<int>::reverse_iterator ri=v.rbegin();ri!=v.rend();)
{
if(*ri % 2 == 0)
{
cout << "Erasing " << *ri << endl;
v.erase((++ri).base()); //erase()函数期待的是正向iterator,故而这里要调
//用base()函数将逆向iterator转换为正向的
}
else ++ri;
}
}
么。柒

2021-12-09 19:11:19

erase(pos)// 删除pos位置的数据,传回下一个数据的位置。
vector容器中有这个成员函数 erase() 可直接调用,参数就是你要删除元素的pos位置。