46.单向链表

  • 初始化单向链表
    1 forward_list<int> list1{ 1,2,3,4,5 };
  • 链表排序
    1 list1.sort();//排序
  • 前插
    1 list1.push_front(10);
  • 链表反转
    1 list1.reverse();
  • 链表头结点
    1 auto ib = list1.begin();
  • 链表头结点前一个结点
    1 auto ib = list1.before_begin();
  • 指定位置后插入
    auto ib = list1.begin();
    int a[5] = { 11,12,13,14,15 };
    list1.insert_after(ib, 19);
    list1.insert_after(ib, a, a + 5);
  • 删除指定结点后的一个结点
    1 list1.erase_after(ib);
  • 输出链表所有的元素
    1 for (auto ib = list1.begin(), ie = list1.end(); ib != ie; ib++)
    2 {
    3     cout << *ib << endl;
    4 }
  • 链表重新初始化
    1 list1.assign(10, 19);
  • 链表合并(要排序后)
    1 forward_list<int> list1{ 1,2,3,4,5 };
    2 forward_list<int> list2{ 1,2,3,4,5 };
    3 list1.sort();//排序
    4 list2.sort();
    5 //合并
    6 list1.merge(list2);