vector 底层原理
补充
vector 内存增长机制
强调1
gcc
当中无参构造与有参构造的内存空间增长方式。
//无参构造 #include <iostream> #include <vector> using namespace std; int main() { vector<int> vec1; for (int i = 1; i <= 10; i ++ ) { vec1.push_back(i); cout << i << "\t" << vec1.capacity() << endl; } return 0; }
代码运行结果:
//有参构造 #include <iostream> #include <vector> using namespace std; int main() { vector<int> vec2(10); cout<< "vec2.capacity :" << vec2.capacity() << endl; for (int i = 11; i <= 50; i ++ ) { vec2.push_back(i); cout << i << "\t" << vec2.capacity() << endl; } return 0; }
代码运行结果:
vector 中reserve 和resize 的区别
vector的元素类型为什么不能是引用?
重点: 引用的特征:1. 引用必须初始化,不能初始化为空对象
,初始化后不能改变指向;2. 引用是别名,不是对象,没有实际地址
,不能定义引用的指针
,也不能定义引用的引用
vector 进行有参构造时,会创建空对象
。
充电站
推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习