zoukankan      html  css  js  c++  java
  • 28、STL中slist的实现

    list是双向链表,而slist(single linked list)是单向链表,它们的主要区别在于:前者的迭代器是双向的 Bidirectional iterator,后者的迭代器属于单向的Forward iterator。虽然slist的很多功能不如list灵活,但是 其所耗用的空间更小,操作更快。

    根据STL的习惯,插入操作会将新元素插入到指定位置之前,而非之后,然而slist是不能回头的,只能 往后走,因此在slist的其他位置插入或者移除元素是十分不明智的,但是在slist开头却是可取的,slist特 别提供了insert_after()和erase_after供灵活应用。考虑到效率问题,slist只提供push_front()操作,元素插入 到slist后,存储的次序和输入的次序是相反的

    slist的单向迭代器如下图所示:

    需要注意的是C++标准委员会没有采用slist的名称,forward_list在C++ 11中出现,它与slist的区别是没有 size()方法。

  • 相关阅读:
    poj 2481
    poj 3928 Ping pong
    再见oi
    NOIP 2014 解方程
    poj1836:Alignment
    poj2479:Maximum sum
    tyvj1510:专家复仇
    tyvj:P1467 通向聚会的道路
    tyvj1176: 火焰巨魔的惆怅
    tyvj1326:剑人合一
  • 原文地址:https://www.cnblogs.com/crbhf/p/15071040.html
Copyright © 2011-2022 走看看