G.3 序列容器的其他成员(2)
模板vector还包含表G.7列出的方法。其中,a是vector容器,n是x::size_type型整数。
表G.7vector的其他操作
|
操 作< xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> |
描 述 |
|
a.capacity( ) |
返回在不要求重新分配内存的情况下,矢量能存储的元素总量 |
|
a.reserve(n) |
提醒a对象:至少需要存储n个元素的内存。
调用该方法后,容量至少为n个元素。如果n大于
当前的容量,则需要重新分配内存。如果n大于
a.max_size( ),该方法将引发length_error异常 |
模板list还包含表G.8列出的方法。其中,a和b是list容器;T是存储在链表中的类型,如int;t是类型为T的值;i和j是输入迭代器;q2和p是迭代器;q和q1是可解除引用的迭代器;n是x::size_type型整数。该表使用了标准的STL表示法[i, j),这指的是从i到j(不包括j)的区间。
表G.8list的其他操作
|
方 法 |
描 述 |
|
a.splice(p, b) |
将链表b的内容移到链表a中,并将它们插在p之前 |
|
a.splice(p, b, i) |
将i指向的链表b中的元素移到链表a的p位置之前 |
|
a.splice(p, b, i, j) |
将链表b中[i,j)区间内的元素移到链表a的p位置之前 |
|
a.remove(const T& t) |
删除链表a中值为t的所有元素 |
|
a.remove_if(Predicate pred) |
如果i是指向链表a中元素的迭代器,
则删除pred(*i)为true的所有值(Predicate
是布尔值函数或函数对象,参见第15章) |
|
a.unique( ) |
删除连续的相同元素组中除第一个元素之外
的所有元素 |
|
a.unique(BinaryPredicate bin_pred) |
删除连续的bin_pred(*i, *(i - 1))为true的元素
组中除第一个元素之外的所有元素
(BinaryPredicate是布尔值函数或函数对象,
参见第15章) |
|
a.merge(b) |
使用为值类型定义的<运算符,将链表b与链
表a的内容合并。如果链表a的某个元素
与链表b的某个元素相同,则a中的元素将
放在前面。合并后,链表b为空 |
|
a.merge(b, Compare comp) |
使用comp函数或函数对象将链表b与链表
a的内容合并。如果链表a的某个元素与链表
b的某个元素相同,则链表a中的元素将
放在前面。合并后,链表b为空 |
续表
|
方 法 |
描 述 |
|
a.sort( ) |
使用<运算符对链表a进行排序 |
|
a.sort(Compare comp) |
使用comp函数或函数对象对链表a进行排序 |
|
a.reverse( ) |
将链表a中的元素顺序反转 |
forward_list的操作与此类似,但由于模板类forward_list的迭代器不能后移,有些方法必须调整。因此,用insert_after( )、erase_after ( )和splice_after( )替代了insert( )、erase( )和splice( ),这些方法都对迭代器后面而不是前面的元素进行操作。