SGI

后插入序列

类别: 容器 组件类型: 概念

描述

后插入序列是一种序列,它允许在摊销常数时间内将元素追加到末尾,或访问最后一个元素。后插入序列具有特殊的成员函数作为这些操作的简写。

精化

序列

关联类型

无,除了序列的那些。

符号

X 一种作为后插入序列模型的类型
a 类型为X
T 的类型X
t 类型为T

定义

有效表达式

除了在序列中定义的表达式外,以下表达式必须有效。
名称 表达式 类型要求 返回值类型
尾部 a.back()   引用如果a是可变的,否则常量引用.
推送尾部 a.push_back(t) a是可变的。 void
弹出尾部 a.pop_back() a是可变的。 void

表达式语义

名称 表达式 先决条件 语义 后置条件
尾部 a.back() !a.empty() 等价于*(--a.end()).  
推送尾部 a.push_back(t)   等价于a.insert(a.end(), t) a.size增加 1。a.back()t.
弹出尾部 a.pop_back() !a.empty() 等价于a.erase(--a.end()) a.size()的副本,减少 1。

复杂度保证

尾部、推送尾部和弹出尾部是摊销常数时间。 [1]

不变量

推送和弹出的对称性 push_back()后面跟着pop_back()是一个空操作。

模型

注释

[1] 这种复杂度保证是back(), push_back()pop_back()定义的唯一原因:它们不提供任何额外的功能。并非每个序列都必须定义这些操作,但如果这些操作存在,则保证它们是高效的。

另请参阅

容器序列前插入序列vector, deque, list
[Silicon Surf] [STL Home]
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。 商标信息