博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
forward_list
阅读量:6265 次
发布时间:2019-06-22

本文共 934 字,大约阅读时间需要 3 分钟。

一、特性

单向链表,只支持单向顺序访问(不支持快速随机访问),是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)  

 

 

转载于:https://www.cnblogs.com/xzxl/p/7702589.html

你可能感兴趣的文章
reduce/reduceRight
查看>>
(转)(contant的一些用法)
查看>>
Shell 脚本常用命令
查看>>
再次改版轮播图
查看>>
pandas系列 read_excel() 和 to_excel()各参数详解
查看>>
VGG使用重复元素的网络
查看>>
Android——Intent,Bundle
查看>>
Flip Game
查看>>
android网络编程之HttpUrlConnection的讲解--DownLoadManager基本用法
查看>>
Leetcode题目:Remove Duplicates from Sorted Array
查看>>
A little collection of cool unix terminal/console/curses tools
查看>>
40个js小技巧:屏蔽鼠标右键、取消选取、防止复制、粘贴、转换地址栏图标
查看>>
mac apache的使用
查看>>
go标准库的学习-hash
查看>>
log4j容器初始化探究
查看>>
Linux通配符与特殊符号知识大全
查看>>
[BZOJ5105]【[Code+#1]晨跑】
查看>>
bootstrap到底是用来做什么的(概念)
查看>>
高并发服务端分布式系统设计概要
查看>>
sqlite3.datebase.serialize(function(){})的问题
查看>>