SGI

前端插入序列

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

描述

前端插入序列是一种序列,其中可以在摊销常数时间内在开头插入元素,或访问第一个元素。前端插入序列具有特殊成员函数,作为这些操作的简写。

精化

序列

关联类型

无,除了序列的关联类型。

符号

X 前端插入序列模型的类型
a 类型为X
T 的类型X
t 类型为T

定义

有效表达式

除了在序列中定义的表达式之外,以下表达式必须有效。
名称 表达式 类型要求 返回类型
前端 a.front() [1]   引用如果a是可变的,否则常量引用.
推入前端 a.push_front(t) a是可变的。 void
弹出前端 a.pop_front() a是可变的。 void

表达式语义

名称 表达式 先决条件 语义 后置条件
前端 a.front() [1] !a.empty() 等效于*(a.begin()).  
推入前端 a.push_front(t)   等效于a.insert(a.begin(), t) a.size增加 1。a.front()t.
弹出前端 a.pop_front() !a.empty() 等效于a.erase(a.begin()) a.size()减少 1。

复杂度保证

前端、推入前端和弹出前端是摊销常数时间。 [2]

不变式

推入和弹出的对称性 push_front()接着pop_front()是一个空操作。

模型

注意

[1] 前端实际上是在序列中定义的,因为它总是可以在摊销常数时间内实现。为了清晰起见,它在此处重复定义,以及推入前端和弹出前端。

[2] 此复杂度保证是front(), push_front()pop_front()定义的唯一原因:它们不提供任何额外功能。并非所有序列都必须定义这些操作,但可以保证如果它们存在,它们将是有效的。

另请参见

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