TList用法求教解决方案

 我来答
山水阿锐
2015-05-03 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.3亿
展开全部
您好,BCB的TList类说明
TList包含对象指针列表。
类关系 TObject
Tlist用于存储和维护对象列表。TList引入属隆和方法以执行以下操作:
(1)在列表中增加或删除对象。
(2)在列表中重排对象。
(3)在列表中定位和获得对象。
(4)在列表中对对象进行排序。
属性列表
Capacity 标识TList对象维护的指针数组的大小。
Count 表明在列表中使用的项的数量。
Items 列出对象的引用。
List 标识组成Items的指针数组。
方法列表
~TList 删除与TList对象有关的内存。
Add 在列表的末尾插入有关的内存。
Clear 从列表中删除所有项。
Delete 删除Index参数标识的项。
Error 产生EListError异常。
Exchange 交换Items数组中两项的位置。
Expand 增加列表的Capacity。
First 返回Items[0]。
IndexOf 返回Items数组中一指针的索引。
Insert 增加一对象至Items数组中。
Last 返回Items[Count-1]。
Move 在Items数组中改变某一项的位置。
Pack 从Items数组中删除所有的零项。
Remove 从Items数组中删除Items参数的第一个引用。
Sort 在列表中执行QuickSort。
TList 创建一个新的TList对象。
详细说明
属性
TList::Capacity
__property int Capacity = {read=FCapacity,write=SetCapacity,nodefault};
  标识TList对象维护的指针数组的大小。
  设置Capacity为列表将要包含的指旬数。当当设置Capacity属性时,如果没有足够的内存扩展列表为它的新的大小,将产生EOutOfMemory异常。
  在没有重新分配内存情况下,读取Capacity可得到列表能包含的对象数。注意不要混淆Capacity和Count属性;Count属性为列表中使用的项的数量。Capacity值总是大于或等于Count值。当Capacity大于Count,通过设定Capacity至Count可以回收未使用的内存。当添加一对象至列表,而此列表已被填充到Capacity时,Capacity属性自动增加。在增加对象之前设置Capacity能减少内存重分配的数量,因此提高了执行效果。例如:
List->Clear();
List->Capacity = Count;
for(int i=0;i<Count;i++) List->add(...);
  在for循环之前分配Capacity保证在随后的每一Add操作不重新分配列表。在调用Add时避免重新分配可以提高执行效果并且保证Add操作不产生异常。
TList:;Count
__property int Count = {read=FCount,write=SetCount,nodefault};
  表明在列表中使用的项的数量。
  读取Count可以确定Items数组中项的数量。增加Count的大小将在Items数组的末尾增加必要的零指针的数量;减小Count的大小将从Items数组的末尾删除必要的零指针的数量。
  注意:Count并不总等同于列表中引用的对象的数量。在Items数组中,某些项将包含零指针。如果要删除零指针并且设置Count为对象引用的项数,则可以调用Pack方法。
TList::Items
__property void* Items[int Index] = {read=Get,write=Put};
  列出对象的引用。
  使用Items可以获得数组中指定对象的指针。Index参数标识对象的索引;第一个对象的索引值为0,第二个对象的索引值为1,以此类推。设置Items可以在指定位置改变引用。使用带有Count属性的Items可以遍历列表中的所有对象。
  应该注意的是,并不是Items数组中所有的项都需包含对象的索引。有些项可能是零指针。如果要删除零掼针并且减小Items数组的大小至对象的数量,可以调用Pack方法。
TList::List
typedef void* TPointerLIst[134217727];
typedef TPointerLIst* PPointerList;
__property PPointerList List = {read=FList};
  标识组成Items的指针数组。
  使用List直接获得Items数组。
TList::~TList
__fastcall virtual~TList(void);
  删除与TList对象有关的内存。
  在应用中不要直接调用~TList。用delete替代。
  ~TList释放存储项列表的内存。注意,~TList并不释放指向列表元素的内存。
TList::Add
int __fastcall Ad(void* Item);
  在列表的末尾插入新项,可以调用Add方法。Add方法返回值为新项的索引值;列表中第一项的索引值为0
  如果Items数组使用完列表对象Capacity,则Add方法分配更多的内存。Add增加Count值以反映新指针的增加。注意:即使Items数组包含零指针,Add方法总是在Items数组的末尾插入Items指针。
TList::Clear
DYNAMIC void __fastcall Clear(void);
  从列表中删除所有项。
  如果要清空Items数组并且设置Count为0,可以调用Clear方法。Clear方法同时释放用于存储Items数组的内存并且设置Capacity为0。
// 本文转自 C++Builder研究 - i=333&d=i653m1
TList::Delete
void __fastcall Delete(int Index);
  删除Index参数标识的项。
  如果要从列表指定位置删除项,可以调用Delete方法。索引从零开始,因此第一项的索引值为0,第二项的索引值为1,以此类推。调用Delete方法向前移动删除项之后的所有英并减小Count。
  如果要删除一项的索引但并不从列表中删除该项并且改变Count,可设置Index的Items属性为零。注意Delete并不释放的项相关的内存。如果要释放存储删除项的内存,可设置Capacity属性。
TList::Error
virtual void __fastcall Error(const System::AnsiString Msg,int Data)  {Error(__classid(TList),Msg,Data};
  产生EListError异常。
  当TList对象出现错误时,调用Error产生异常。Error组合Msg参数标识的错误消息和Data参数标识的数据植,然后产生EListError异常。调用Error而不是增加一行程序代码。
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式