后插入序列
|
|
类别: 容器 |
组件类型: 概念 |
描述
后插入序列是一种序列,它允许在摊销常数时间内将元素追加到末尾,或访问最后一个元素。后插入序列具有特殊的成员函数作为这些操作的简写。精化
序列
关联类型
无,除了序列的那些。符号
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
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。
商标信息