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等技术内容,立即学习