社区
C++ Builder
帖子详情
◆关于链表与TList的比较
Dala
2003-08-11 11:58:58
数据结构中有一个链表类,大家应该熟悉,各数据之间一环套一环;
其实BCB中的TList可以代替链表来使用,虽然数据不是一环套一环,但可以用Index属性来映射数据。但不知二者在使用方便性及运行的系统开销以及速度上有什么主要差异。
请各路大虾们不吝指点一二。
谢谢!
...全文
160
31
打赏
收藏
◆关于链表与TList的比较
数据结构中有一个链表类,大家应该熟悉,各数据之间一环套一环; 其实BCB中的TList可以代替链表来使用,虽然数据不是一环套一环,但可以用Index属性来映射数据。但不知二者在使用方便性及运行的系统开销以及速度上有什么主要差异。 请各路大虾们不吝指点一二。 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
31 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
oldcold
2003-08-23
打赏
举报
回复
学习
zjqyb
2003-08-23
打赏
举报
回复
更正我上面的说法,深深的感到没有实践就不能乱发言,这主要是我平常不喜欢用STL的缘故
(用STL太罗嗦,我个人觉得还是少用STL为妙)
Release和Debug 模式用了STL的话,还是有很大区别,我看主要是STL里面用了好多Assert的缘故,怪不得平时不觉得有多大区别(主要是没有用STL),用CB的时候很少去关注Release和Debug ,用VC的话就要关注Release和Debug,调试我觉得特烦,所以我永远支持Borland
zjqyb
2003-08-22
打赏
举报
回复
vector的实现是非常优化的,比TList或者TObjectList要快的多,我持怀疑态度,
测试一下如何
innocentlogin
2003-08-22
打赏
举报
回复
#include <list>
#include <iostream>
#include <iterator>
using namespace std;
//using list
list<int> lst;
for(int i=0;i<10;++i)
list.push_back(i);
for(list<int>::iterator it=lst.begin();it!=lst.eng();++it)
cout<<*it;
Siney
2003-08-22
打赏
举报
回复
首先stl里提供了链表,不管是单项,双向都提供了,不过既然楼主问效率和系统开销,我就告诉你,你既然学习过数据结构,就应该知道数组的访问速度最快,与之对应的stl是vector,但vector是最消耗资源,而且也是最花费cpu开销的,为什么?数据结构上有说,你去自己看吧、而链表是最不消耗资源,而且添加删除速度非常块,但寻址速度慢。
TList的实现是以数组为基础的,也就是说他类似于vector,但TList是类型不安全,关于这点(你可以到我的网站上看一篇文章http://siney.yeah.net),所以强烈推荐使用vector,而且vector的实现是非常优化的,比TList或者TObjectList要快的多。
windlyzhang
2003-08-22
打赏
举报
回复
当然可以了,你可以自己定义一个链表嘛!其中的遍力,插入,删除,查找,都自己来写函数,其实也挺简单的,关键是自己要设计好功能。
Dala
2003-08-22
打赏
举报
回复
学习了STL的list类,果然不错,只是在遍历list中所有元素时不很方便(如果是我没搞明白,望楼上哪位给个例子)。
如果自己定义一个简单的list类,用模板来限制一个list对象只保存同一类型的数据,不知各位是否觉得可行?
lvjack
2003-08-22
打赏
举报
回复
我的P4 1.8 256M xp+bcb6+sp4
aceouter
2003-08-22
打赏
举报
回复
P4-1.6, 256M, WIN2K+SP4, BCB5+SP1
#include <vector>
Release:
TList //2000
vector //1900
Full Debug:
TList //1900
vector //>9500
lvjack
2003-08-22
打赏
举报
回复
list
1546
1563
1547
1594
1531
vector
1547
1594
1547
1531
1578
我看不出来了
Siney
2003-08-22
打赏
举报
回复
to zjqyb()
我的意思是不要加<vector.h> 它和<vector>是有区别的
柯本
2003-08-22
打赏
举报
回复
我又测了一下,那个先点那个快!都是1800左右
(可能是我的机器太快了...)
xuv2002
2003-08-22
打赏
举报
回复
呵呵
P4 1.6 1256 win2k+bcb6+sp4
TList 耗时 1600
vector 耗时 1600+ 差不多
个人习惯
假如是小量的同类型指针数组,例如一系列的Button指针,
用TList 写起来方便些
xuv2002
2003-08-22
打赏
举报
回复
呵呵
P4 1.6 1256 win2k+bcb6+sp4
TList 耗时 1600
vector 耗时 1600+ 差不多
个人习惯
假如是小量的同类型指针数组,例如一系列的Button指针,
用TList 写起来方便些
zjqyb
2003-08-22
打赏
举报
回复
换个好一点机器试一下
我可是 celeon 450 ,128M ,win2k/bcb6+sp4
不加 #include <vector> 我编译能通过!!!
zjqyb
2003-08-22
打赏
举报
回复
和release模式应该没什么关系
Siney
2003-08-22
打赏
举报
回复
#include <vector> //注意这里
我又测试了一遍,还是vector的快,我的是bcb6+sp4+win2kpro + release模式
请大家帮忙测试一下,请不要使用bcb5,bcb5自带的那个stl不如bcb6的快.
Siney
2003-08-22
打赏
举报
回复
不会吧,相差这么远,我的是release模式
计算机是破了一点,大家不要见笑:)
zjqyb
2003-08-22
打赏
举报
回复
使用 BCB 中的数据结构多
柯本
2003-08-22
打赏
举报
回复
再测:
c1.0G 64M (直接调用已生成的exe) win98
TList //2868
vector //3905
加载更多回复(11)
4.9.
链表
&状态机与多线程
本课程主要目标是让大家彻底全面的掌握
链表
这一数据结构。因为
链表
在内核驱动开发中属于很重要的基础技术,因此用十几节课来彻底深入讲解和实践。
链表
类模板
list
设计如下样式的
链表
类模板
list
,并对其进行简单使用。 template <class T> class
list
{ //类模板
list
,使用类型形参 T struct node { //结构体 node 类型用来定义
链表
表项(的具体数据项) T data; //...
list
链表
的使用
STL中封装了
链表
的容器
list
,内部实现是一个双向
链表
不同于vector,
list
中每个元素在内存中的地址是不连续且没有规律的,所以用
list
进行插入和删除时间复杂度比vector低很多, 例如在vector插入一个元素之后,这...
数据结构:
链表
(linked-
list
)
链表
分为单向
链表
(Singly linked lis)、双向
链表
(Doubly linked
list
)、循环
链表
(Circular Linked
list
)。
双向
链表
(Double Linked
List
)
虽然单向
链表
能够100%解决逻辑关系为“一对一”数据的存储问题,但在解决那些需要大量查找前趋节点的问题是,单向
链表
无疑是不能用了,因为单向
链表
适合“从前往后”查找,并不适合“从后往前”查找。如果要提高
链表
...
C++ Builder
13,825
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章