List 的介绍和使用
STL 中的 list 本质上是一个双向循环链表。相比 vector,它在内存中不是连续存储的,这意味着它在中间插入或删除元素时不需要移动大量数据,但随机访问的效率会低一些。
1. List 的构造
构造函数提供了多种初始化方式,从空列表到批量填充都很方便:
// 构造空的 list
list<int> l1;
// 构造包含 4 个值为 100 的元素
list<int> l2(4, 100);
// 用区间 [first, last) 构造
list<int> l3(l2.begin(), l2.end());
// 拷贝构造
list<int> l4(l3);
// 以数组为迭代器区间构造
int array[] = {16, 2, 77, 29};
list<int> l5(array, array + sizeof(array)/sizeof(int));
// C++11 列表格式初始化
list<int> l6{1, 2, 3, 4, 5};
2. Iterator 的使用
迭代器在 list 中扮演着类似指针的角色,但要注意正向和反向的区别。 和 返回正向迭代器,而 和 返回反向迭代器。


