cpp-list

顺序容器
list是一个双向链表,因此它的内存空间是可以不连续的,通过指针来进行数据的访问,这使list的随机存储变得非常低效,因此list没有提供[]操作符的重载。但list可以很好地支持任意地方的插入和删除,只需移动相应的指针即可。

  1. 如果你需要高效的随即存取,而不在乎插入和删除的效率,使用vector
  2. 如果你需要大量的插入和删除,而不关心随即存取,则应使用list
  3. 如果你需要随即存取,而且关心两端数据的插入和删除,则应使用deque

forward_list

相对于 list 来说, 因为是单向链表,所以节省空间,增加效率.

#include <forward_list>

sort


random access

use iterator

std::next
std::advance

#include <iostream>
#include <iterator>
#include <vector>

int main()
{
std::vector<int> v{ 3, 1, 4 };
auto it = v.begin();
auto nx = std::next(it, 2);
std::cout << *it << ' ' << *nx << '\n';
}