删除向量的第一个元素并将其大小减小 1
Delete first element of vector and reduce it's size by 1
说我有
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]不需要等于最后一个元素
相关文章:
- 为什么它只打印双链接列表的第一个值,而我的程序却崩溃了
- std::find,返回所有找到的值的替代方法,而不仅仅是存在重复的向量的第一个值
- 如何仅读取文本文件中的第一个值
- 在C++中,如何在第一个"system()"结束后执行第二个"system()"?
- 查找不在标准中的第一个值::设置<int>最小-最大值
- C++:忽略第一个 cin.ignore 之后的输入
- 在C++中打印多个矢量的第一个值
- C++去除前x个元素的有效方法,在不改变向量大小的情况下将第x+1个元素推到第一个
- C++第一个cout将不会打印
- 我们可以在第一个else-if条件结束后使用另一个else-if条件吗
- OpenGL:第二个VBO破坏了第一个VBO
- 如何将正则表达式向量与一个字符串匹配?
- 为什么第一个Dynamic_cast没有投射到基类?
- 从 c++ 中的字符串向量创建一个元组
- 按另一个向量对一个向量进行排序
- OpenGL 2D游戏只绘制第二个精灵纹理而不是第一个
- C++ 为什么程序只读取第一个值
- 在我的第一个C++程序中需要一些帮助(简单)
- 为什么我的代码在第一个 if 语句处中断?
- 获取不等于特定值的向量的第一个N元素