《C++ Primer Plus》笔记>容器

STL -> vector:
vector 类似于 string 类,也是一种动态数组。
在调用时可以在末尾附加或者中间插入新数据。
基本上,vector 是使用 new 创建动态数组的替代品。
事实上,vector 自动使用 new 和 delete 来管理内存。
vector 可以在插入或者添加值时自动调整长度,所以可以将初始长度设置为零,调整长度需要用到 vector 包中的各种方法。

#include 
//...
using namespace std;
vector vi; // vi 是一个vector对象
int n;
cin >> n;
vector vd (n); 
// vd 是一个长度为n的vector 对象

STL -> array:
array 类长度固定,位于std中,使用静态内存分配(栈)。
因此其效率和数组相同,但更为方便和安全。

#include 
...
using namespace std;
array ai; // ai 是一个长度为5的array对象
array ad = {1.2, 2.1, 3.43, 4.3};

数组、vector、array之间的比较:
vector和array也不会检查超界错误。
a2[-2] = 5 // 错误,但是允许
可以使用类方法来检查。
a2.at(1) = 2.3 // 等同于a2[1] = 2.3
另外还有 begin() 和 end() 函数可以确定边界。

你可能感兴趣的:(《C++ Primer Plus》笔记>容器)