一起来读书202- c++标准模板库编程实战:第二章 使用序列容器

摘要

序列容器一些操作

 

详情

序列容器

  • array<T, N>(数组容器):一个长度固定的序列
  • vector<T>(向量容器):一个长度可变的序列
  • deque<T>(双向队列容器):一个长度可变的,可以自动增长的序列
  • list<T>(链表容器):一个长度可变的,由T类型对象组成的序列
  • forward_list<T>(正向链表容器):一个长度可变的,由T类型对象组成的序列

array, vector, deque容器的函数成员

函数成员说明array<T, N>vector<T>deque<T>
begin()返回开始迭代器YYY
end()返回结束迭代器YYY
rbegin()返回反向开始迭代器YYY
rend()返回方向结束迭代器YYY
cbegin()返回const开始迭代器YYY
cend()返回const结束迭代器YYY
crbegin()返回const反向开始迭代器YYY
crend()返回const反向结束迭代器YYY
assign()用新元素替换原有内容-YY
operator=()复制同类型容器的元素,或者用初始化列表替换现有内容YYY
size()返回实际元素个数YYY
max_size()返回元素个数的最大值YYY
capacity()返回当前容量-Y-
empty()返回true,如果容器中没有元素的话YYY
resize()改变实际元素个数的最大值-YY
shrink_to_fit()将内存减少到等于当前元素实际所使用的大小-YY
front()返回打一个元素的引用YYY
back()返回最后一个元素的引用YYY
operator[]()使用索引访问元素YYY
at()使用进过边界检查的索引访问元素YYY
push_back()在序列的尾部添加一个元素-YY
insert()在指定的位置插入一个或多个元素-YY
emplace()在指定的位置直接生成一个元素-YY
emplace_back()在序列尾部生成一个元素-YY
pop_back()移出序列尾部的元素-YY
erase()移出一个元素或一段元素-YY
clear()移出所有的元素,容器大小变为0-YY
swap()交换两个容器的所有元素YYY
data()返回包含元素的内部数组的指针YY-

list, forward_list容器的函数成员

函数成员说明list<T>forward_list<T>
begin()返回开始迭代器YY
end()返回结束迭代器YY
rbegin()返回反向开始迭代器Y-
rend()返回反向结束迭代器Y-
cbegin()返回const开始结束迭代器YY
before_begin()返回一个指向第一个元素前一个位置的迭代器-Y
cbefore_begin()返回一个指向第一个元素前一个位置的const迭代器-Y
cend()返回const结束迭代器YY
crbegin()返回const反向开始迭代器Y-
crend()返回const反向结束迭代器Y-
assign()用新元素替换原有内容YY
operator=()复制同类型容器的内容,或者用初始化列表替换现有内容YY
size()返回实际元素个数Y-
max_size()返回元素个数的最大数YY
resize()改变实际元素的个数YY
empty()返回true,如果容器中没有元素的话YY
front()返回第一个元素的引用YY
back()返回最后一个元素的引用Y-
push_back()在序列的尾部添加一个元素Y-
push_front()在序列的起始位置添加一个元素YY
emplace()在指定位置直接生成一个元素Y-
emplace_after()在指定位置的后面直接生成一个元素-Y
emplace_back()在序列尾部生成一个元素Y-
emplace_front()在序列的起始位置生成一个元素YY
insert()在指定的位置插入一个或多个元素Y-
insert_after()在指定位置的后面插入一条或多个元素-Y
pop_back()移出序列尾部的元素Y-
pop_front()移出序列头部的元素YY
reverse()反向元素的顺序YY
erase()移除指定位置的一个元素或一段元素Y-
erase_after()移除指定位置后面的一个元素或一段元素-Y
remove()移除所有和参数匹配的元素YY
remove_if()移除满足一元函数条件的所有元素YY
unique()移除所有连续重复的元素YY
clear()移除所有的元素,容器大小变为0YY
swap()交换两个容器的元素YY
sort()对元素进行排序YY
merge()合并两个有序容器YY
splice()移动指定位置前面的所有元素到另一同类型的list中Y-
splice_after()移动指定位置后面的所有元素到另一同类型的list中-Y

 

总结

  • array<T, N>容器可以存放N个类型为T的元素
  • vector<T>容器可以存储任意个数的T类型元素
  • 可以在vector的末尾高效地添加或删除元素;但在序列内部添加或删除元素会变慢,因为需要移动元素
  • 可以使用索引来访问vector中的元素,或者调用会检查索引的成员函数at()
  • deque<T>是一个双端队列,可以存储任意个数的T类型元素
  • 可以在deque容器的头部和尾部高效地添加或删除元素
  • array, vector, deque容器提供了const和non-const随机访问迭代器和反向迭代器
  • list<T>是一个存储T类型元素的双向链表
  • 只能以从序列头部或尾部遍历元素的方式访问list容器中的元素
  • list容器提供双向迭代器
  • forward_list<T>容器以单链表的形式存储T类型的元素,但是比list容器更快,更简单
  • forward_list容器提供正向迭代器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值