zoukankan      html  css  js  c++  java
  • forward_list

    一、特性

    单向链表,只支持单向顺序访问(不支持快速随机访问),是C++11标准新增的类型

    可类比于数据结构——单(向)链表

    1. 没有size操作

    • forward_list为了追求性能,省去了size操作

    2. 没有反向容器的成员

    成员 说明
    reverse_iterator 按逆序寻址元素的迭代器
    const_reverse_iterator 不能修改元素的逆序迭代器

    c.rbegin()

    c.rend()

    返回指向 c 的尾元素和首元素之前位置的迭代器

    c.crbegin()

    c.crend()

    返回const_reverse_iterator

    3. 其迭代器不支持递减运算符

    4. 并未定义insert、emplace和erase

    • 因为在forward_list中添加或删除元素与其他容器上的操作的实现方式不同,故forward_list定义了相似而不同的操作:insert_after、emplace_after和erase_after
    • 为了支持这些操作,forward_list定义了before_begin(),它返回一个首前迭代器

    二、不支持的操作

    操作 说明
    c.pop_back()  

    c.push_back(t)

    c.emplace_back(args)

    在c的尾部创建一个值为t或由args创建的元素
    c.back() 每个顺序容器都有的操作,除了forward_list
    c[n] 返回 c 中下标为 n 的元素的引用
    c.at(n) 只适用于string、vector、deque、array
    c.size() 返回容器中元素的数目

    三、一些支持的操作

    操作 说明
    c.front() 每个顺序容器都有的操作
    c.maxsize() 返回一个大于或等于该容器所能容纳的最大元素数的值
    c.pop_front(args) vector和string不支持
    c.push_front(args)  

    c.before_begin()

    c.cbefore_begin()

     
    c.insert_after(args)  
    c.erase_after(args)  

     

  • 相关阅读:
    cantor 数表
    利用form的“acceptcharset”在不同编码的页面间提交表单
    <li>标签,在文字超出宽度时引起混乱的解决办法
    java中 Integer.getInteger(String str)的疑惑
    SQL语句集锦
    禁用鼠标右键
    ROW_NUMBER() OVER函数的基本用法
    listview
    decodeResource
    LinkedList
  • 原文地址:https://www.cnblogs.com/xzxl/p/7702589.html
Copyright © 2011-2022 走看看