栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++学习 二十、STL(3)序列容器

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++学习 二十、STL(3)序列容器

C++学习 二十、STL(3)序列容器

前言序列容器类型序列容器方法

前言

本篇继续学习C++中的STL,序列容器。

序列容器类型

序列容器,一般是通过类似数组的形式,按照次序存储某种类型的数据,包括:

array数组容器,类似于普通数组,存储N个T类型的数据,不能增加或者减少元素,只能修改元素的值。vector向量容器,长度可变,当内存不足时会自动申请分配新内存。可以在尾部高效增加或者删除元素,也可以在任意位置低效插入和删除元素。deque双端队列容器,可以在头部和尾部高效增删元素,也可以在任意位置低效插入和删除元素。list双向链表容器,可以在容器任何位置高效插入和删除元素,但访问元素时需要从第一个或最后一个元素开始沿着迭代器访问,效率较低。forward_list单向链表,与list类似,但其迭代器是前向访问的,也就是只能从第一个元素开始沿着迭代器访问。queue队列容器,先进先出,只能在尾部添加元素,在头部删除元素,只能访问头部和尾部元素,没有迭代器。stack栈容器,先进后出,只能向栈顶添加或者弹出元素,只能访问栈顶元素,同样没有迭代器。 序列容器方法

序列容器有许多共通的方法,也有一些独特的方法。

以vecctor为例:

begin(),rbegin(),cbegin(), crbegin(),end(),rend(),cend(),crend() # 返回迭代器,r表示反向,c表示常量

assign() # 把另一个容器中元素放到本容器中

operator=(),operator[] # 容器赋值,索引访问元素

size() # 元素个数

max_size() # 容器最大容量

capacity() # 当前容量

empty() # 判断是否是空容器

resize() # 改变容器长度

front(),back() # 返回第一个、最后一个元素的引用

at() # 使用边界检查的索引访问

push_back(), pop_back() # 从尾部添加/删除一个元素

insert(), erase() # 向某个位置插入或删除一段元素

clear() # 清空容器(但不回收空间)

swap() # 交换两个容器的所有元素

data() # 返回容器第一个元素的指针

begin(), end()这些方法,没有迭代器的容器自然就不具备。

assign()把其它容器的元素替换自身,但array数组容器是定长的,自然没有该方法,resize(),push_back(),pop_back(),insert(),erase(),clear()这些方法同理。

全部记住这些方法比较麻烦,一般IDE都会有提示。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/768407.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号