C++ 向量数组在删除一个或多个元素后是否调整大小?
是否C++ 向量数组在删除一个或多个元素后是否调整大小?,c++,function,vector,size,erase,C++,Function,Vector,Size,Erase,是否vector.erase调整vector对象的大小,以便我可以使用vector.size()测量减小的大小 比如, vector<int> v(5); v = {1,2,3,4,5}; 我的向量对象v现在的大小是否为4。换言之,在这个操作之后是v.size()==4?是的,当您擦除元素时,大小会减小 不过,不要害怕测试自己,只需写一个简单的例子,比如:): 我们希望是这样,对吗?我的意思是说: 返回大小 返回向量中的元素数 这是矢量中包含的实际对象数,而不是 必须等于其存储容
vector.erase
调整vector对象的大小,以便我可以使用vector.size()
测量减小的大小
比如,
vector<int> v(5);
v = {1,2,3,4,5};
我的向量对象
v
现在的大小是否为4。换言之,在这个操作之后是v.size()==4
?是的,当您擦除元素时,大小会减小
不过,不要害怕测试自己,只需写一个简单的例子,比如:): 我们希望是这样,对吗?我的意思是说: 返回大小 返回向量中的元素数 这是矢量中包含的实际对象数,而不是 必须等于其存储容量
试试看或者阅读文档。顺便说一句,不要混淆大小和容量。无论.size()是否减小。谢谢!我想知道那个特定的单元格是空的还是连续的元素会向左移动!不客气@Kishaan92,请确保您接受答案!:)顺便说一句,当您有疑问时,您应该习惯于编写最少的示例进行测试!:)是的,当然!下次在这里发布之前,我会先测试一下。我是一个编程新手:)顺便说一句,我能感觉到@Kishaan92,这就是为什么我回答了这个问题,否则我会投票关闭它。你看,一开始我和你很像,但Stack Overflow(和其他一些人)告诉我如何克服这种恐惧!现在轮到我了……:)是的,现在我明白了如何正确使用堆栈溢出(即不获得任何向下投票),希望我能很快克服恐惧
v.erase(v.begin()+4);
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v(5);
v = {1,2,3,4,5};
cout << v.size() << endl;
v.erase(v.begin()+4);
cout << v.size() << endl;
return 0;
}
gsamaras@gsamaras-A15:~$ g++ -Wall -std=c++0x main.cpp
gsamaras@gsamaras-A15:~$ ./a.out
5
4