删除向量的第一个元素并将其大小减小 1

Delete first element of vector and reduce it's size by 1

本文关键字:向量 第一个 元素 删除      更新时间:2023-10-16

说我有

std::vector<int> xVec{ 1, 2, 3 };

我想删除其第一个元素,将xVec{ 2, 3 }

一起

为了实现这一目标,我尝试了xVec.erase( xVec.begin() ),但这给我带来了{ 2, 3, 3 }。它消除了第一个元素,但使矢量的大小相同。再加上最后一个元素。

我该怎么做才能删除第一个向量元素并减少向量大小?

我相信它不是由向量的大小引起的,但是在您已经删除了第一个元素之后,您仍然尝试打印第三个元素,我可以通过以下方式重现它。

std::vector<int> x({1,2,3});
int size=x.size():
x.erase(x.begin());
for(int i=0;i<size;i++)
    std::cout << x[i] << ' ';

请注意,访问向量大小之外的索引导致不确定的行为,x [2]不需要等于最后一个元素