向量的存储空间根据需要而自动伸缩。当现有的存储空间不足以容纳新增元素时,向量会自动申请新的存储空间,并将旧的元素进行迁移。我们通过分析下述C++程序来理解向量的内存管理行为。
本文引用自作者编写的下述图书; 本文允许以个人学习、教学等目的引用、讲授或转载,但需要注明原作者"海洋饼干叔
叔";本文不允许以纸质及电子出版为目的进行抄摘或改编。
1.《Python编程基础及应用》,陈波,刘慧君,高等教育出版社。免费授课视频 Python编程基础及应用
2.《Python编程基础及应用实验教程》, 陈波,熊心志,张全和,刘慧君,赵恒军,高等教育出版社Python编程基础及应用实验教程
3. 《简明C及C++语言教程》,陈波,待出版书稿。免费授课视频
//Project - FishVector
#include <iostream>
#include <vector>
using namespace std;
class Fish{
string sNumber;
public:
Fish(){
static int i = 0;
sNumber = std::to_string(i++);
cout << "Fish constructor: " << sNumber << endl;
}
Fish(const Fish& r){
sNumber = r.sNumber + "[Copy]";
cout << "Fish copy constructor: " << sNumber << endl;
}
~Fish(){
cout << "Fish destructor: " << sNumber << endl; }
};
int main(){
vector<Fish> f(2); //0,1号鱼
printf(