有C++的超神人物请帮我解答下疑问吧!

2023-10-23 17:14

2023-10-23 18:42
其实很简单。
1,你理解的没错。size说的是当前vectior里面有多少个元素,因为int size() const;这个函数的函数体可以是int size() {return size}。按照代码来说输出是8,其实里面已经有数据了,因为
for(i=0;i Arr[i]=0;
所以毕扰烂个人觉得你老师写错了,也有可能是本来就是这么想的。miniVector::miniVector(int size):函数或者他这个函数的用意就是如果你申请一个8大小的vector,就给你数据全0的8大小的vector。因为只是模拟vector,如果不是微软那样的代码,要做出一样的vector代码是相当难的。
不是还有miniVector();方法嘛,这个的话返回size就是0了。
2,你没看仔细,比如现在都是李散size=Capacity=3,但是经过reserve之后,Capacity已经手漏被赋值为6了,所以第二次使用push_back(),因为size !=Capacity所以只是数据添加的过程。
3.Size(0),Capacity(0),Arr(NULL)是附带初始化。就是把这些成员变量赋值成括号里面的值。
跟函数体里面写下面的话效果一样。
Size=0;
Capacity = 0;
Arr=NULL;
更多回答
1. STL中的源枯vector是动态分配内凯禅存的。另外:
vector v(8)是定义了一个长度为8的盯裂尘vector;