扩容原理概述
- 新增元素:Vector通过一个连续的数组存放元素,如果集合已满,在新增数据的时候,就要分配一块更大的内存,将原来的数据复制过来,释放之前的内存,在插入新增的元素
- 对vector的任何操作,一旦引起空间重新配置,指向原vector的所有迭代器就都失效了
- 初始时刻vector的capacity为0,塞入第一个元素后capacity增加为1
- 不同的编译器实现的扩容方式不一样,VS2015中以1.5倍扩容,GCC以2倍扩容。
对于C/C++编写的程序,从源代码到可执行文件,一般经过下面四个步骤:
1、预处理:条件编译,头文件包含,宏替换的处理,生成.i文件。
2、编译:将预处理后的文件转换成汇编语言,生成.s文件
3、汇编:汇编变为目标代码(机器代码)生成.o的文件
4、链接:连接目标代码,生成可执行程序