一、顺序容器
1.1 顺序容器概述
顺序容器(sequential container)为程序员提供了控制元素存储和访问顺序的能力。这种顺序不依赖元素的值。
容器类型:
vector、deque、list、forwart_list、array、string,具体特性如下:
forward_list为了最大程度上达到手写链表的性能,不支持size操作。
通常,使用vector是最好的选择,除非有很好的理由选择其他容器。
1.2 容器库概览
正常使用vector时,都假设了该类型具有默认构造函数,对于没有默认构造函数类型,需要提供元素初始化器。课本上是这样描述的:
vector<noDefault> v1(10,init) //正确。提供了元素初始化器
vector<noDefault> v2(10) //错误。编译时会出错,必须提供元素初始化器
class myclass
{
public:
myclass(int y) { x = y; }
public:
int x;
};
int main()
{
myclass obj(3);
vector<myclass> v1(10,obj); //可行,obj作为一个已有对象进行初始化
cout << v1[0].x << endl;
//vector<myclass> v1(10); //不可以,编译不通过
}