C++标准库顺序容器知识点总结

C++具有内置数据结构,但为了更好的满足开发者的需求,C++标准库提供了多种容器来供程序员调用,本篇博客主要是顺序容器的相关知识点总结

在C++中,容器主要是一些特定类型的集合,顺序容器为程序员提供存储和顺序访问的能力,主要的容器类型有vector、deque、list、forward_list、array、string,与内置数据类型相比,容器往往具有更好的灵活性和安全性,因此有必要掌握,下面分别进行介绍:

向量vector:

介绍:可变数组大小,支持快速随机访问,缺点是在尾部之外的位置进行插入或删除元素可能很慢

初始化定义方法:vector<typeElem> V;注意在早期版本的编译器中,如果typeElem为另外一个vector类型,则需要在两个相邻的>中间以空格隔开,否则报错

双端队列:deque

介绍:支持随机访问,在头尾插入元素速度很快

初始化定义方法:deque<typeElem> D;

双向链表:list

介绍:支持双向顺序访问,在链表的任意位置进行元素的插入或删除速度都很快

初始化定义方法:list<typeElem> listexem;

单项链表:forward_list

介绍:支持单向顺序随机访问,在链表的任意位置进行插入和删除速度都很快

初始化定义方法:forward_list<typeElem> flist;

数组容器:array

介绍:固定数组大小,支持快速随机访问,不能添加或删除元素,具有跟内置数组相似的性质,但相对于内置数组具有更好的安全性,也更加方便操作,例如支持数组赋值

初始化定义方法:array<typeElem> arr;

字符串容器:string

介绍:与vector性质相似,不同之处在于专门用来保存字符数据

初始化定义方法:string str;string str(“stringelem”);

C++标准库的顺序容器类型大致就这么多,他们在执行不同的操作时性能各有优劣,需要程序员根据需要自行选用,下面介绍一下容器的遍历及访问操作,对容器进行遍历,通常都会用到迭代器,迭代器是C++标准库为了方便容器操作而定义的一个接口类型,iterator beg = ss.bengin();以此方式可以定义并初始化一个迭代器,在C++11标准支持auto数据类型定义,即左值类型根据右值的数据类型来定,故迭代器也可以用auto beg = ss.begin();的方式来定义,对于一个容器,都定义有last()方法来获取他的尾后迭代器,注意他是指向最后一个元素的下一个位置,即一个没有实际意义的位置,在使用过程中一定要注意这一点

在C++标准中所有的容器都支持相等运算符,但是只有顺序容器支持关系运算符,因此应该养成使用相等运算符进行条件判断的习惯。

每次进行插入和删除之后往往都会使迭代器失效,因此我们必须及时刷新迭代器,特别注意尾喉迭代器必须定义在循环内部,否则一旦容器添加或删除了元素就可能发生无法预知的错误。

容器中凡是涉及到访问元素的操作都返回的事元素的引用,如果要使用变量来改变迭代器的元素值,必须将相应的变量定义为引用类型,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值