前端插入序列
|
|
类别: 容器 |
组件类型: 概念 |
描述
前端插入序列是一种序列,其中可以在摊销常数时间内在开头插入元素,或访问第一个元素。前端插入序列具有特殊成员函数,作为这些操作的简写。精化
序列
关联类型
无,除了序列的关联类型。符号
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
版权 © 1999 Silicon Graphics, Inc. 保留所有权利。
商标信息