2016 - 2024

感恩一路有你

stl中的顺序容器和关联容器 C语言中链表的具体用途?

浏览量:1875 时间:2023-07-17 07:04:14 作者:采采

C语言中链表的具体用途?

链表主要用于管理长度或数量不确定的数据。与数组相比,链表在处理这类数据时节省内存。动态语言通常不会。;不需要链表,因为动态语言的解释器帮助你管理内存,但是当你对空间效率或者插入效率有特殊要求的时候,你也可以在动态语言中使用链表。链表常用于在程序中临时存储一组长度不定的线性数据。具有这种特征的数据可以用链表保存:

1、数据逐渐增加

2.数据的长度是不定的,所以在存储第一个数据之前,很难确定未来要存储多少数据的上限,或者虽然可以确定上限,但在大多数情况下远大于数据的可能长度,所以一次性按照上限分配空间是不划算的。链表可以在每次需要添加新数据时申请内存,不会造成浪费,也不会因为一次申请不够而限制数据量。

3,不需要根据序列号随机存取数据。列表容器是在C STL中提供的,它是一个链表。同时,STL还提供了一个vector容器,也可以用来处理具有上述特征的数据,vector还支持随机访问(即可以忽略上面第3点中的要求)。但是,在添加数据时,如果原来分配的连续内存已经用完,vector需要重新分配内存并复制原始数据。此时其插入数据的动作时间复杂度不是O(1)(不是一个常数时间)。因此,除了上述特征之外,如果具备以下第四个特征,那么链表就是最佳选择:

4.我希望每次添加和删除数据的时间复杂度是O(1)(常数时间)。

博途stl程序总结?

1)容器是一种数据结构,如list、vector和deques,由template类的方法提供。为了访问容器中的数据,可以使用容器类输出的迭代器;

2)迭代器,它提供了访问容器中对象的方法。例如,您可以使用一对迭代器来指定列表或向量中的对象范围。迭代器就像一个指针。其实C的指针也是迭代器。然而;迭代器也可以是为运算符*()和其他类似指针的运算符定义方法的类对象。

3)算法是用于操纵容器中的数据的模板函数。例如,STL使用sort()对向量中的数据进行排序,使用find()在列表中搜索对象。函数本身与它们所操作的数据的结构和类型无关,因此它们可以用于从简单数组到高度复杂容器的任何数据结构。

数据 链表 容器 对象 内存

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。