STL动态数组类
std::vector的特点
- 在数组末尾添加元素的时间是固定的,不会因为元素的个数多少而影响时间
- 在数组中间添加元素与该元素后面的元素个数成正比
- 存储的元素是动态的而vector类负责管理内存
实例化vector
非常的基础!!!
#include<vector>
int main()
{
std::vector<int> v1;
std::vector<int> v2{ 1,2,3,4,5 };
std::vector<int> v3(10);//10个元素,但不进行赋值
std::vector<int> v4(10, 90);//10个元素,每个元素都赋值90
std::vector<int> v5(v4);//将v4的值拷贝到v5中
std::vector<int> v6(v4.cbegin(), v4.cbegin()+5);//从v4的开始赋值过来5个元素
return 0;
}
使用push_back在末尾添加元素
v1.push_back(30);
使用size输出数组长度
cout<<v4.size()<<endl;
使用insert在数组中插入元素,insert有多个重载版本,可以随心所欲的进行插入
v4.insert(v4.begin(),20);//在开头插入一个20 v4.insert(v4.begin(),2,20);//在开头插入两个20 //还可以将另一个vector的内容插入到指定位置
具体的使用就介绍到这里,有兴趣的同学可以参考cplusplus这个网站
理解大小和容量
vector的大小是指实际存储的元素数目,而容量是指在重新分配内存前vector能够存储的元素个数,这么说有点不好理解,意思就是vector会提前预开辟一段空间用来存储元素,当这块儿空间存满的时候会继续开辟空间,因此大小是小于等于容量的。
查询大小用size(),查询容量用capacity()
如果vector需要频繁的分配内存空间将会影响性能,这种问题可以使用成员函数reserve(number)解决,reserve函数会增加分配给内部数组的空间。
STL depue类
这个动态数组类和vector十分的相似,但支持在数组开头添加和删除元素(利用push_front和pop_front),在这里我们不进行使用的演示了,等以后进行相关题目的解析时我会把连接挂到这里。
STL list和forwad_list
未完待续…