Delphi中没有vector怎么来代替这个?

Eastunfail 2003-01-28 08:25:55
Delphi中没有C++中的vector,用得有点不爽~~~如果我要实现这样的容器,该怎么做呢?最好附上源代码
...全文
199 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
toshin 2003-01-29
  • 打赏
  • 举报
回复
Vector其实类似于一个OleVariant的数组,但是功能更加强大,且使用Add方法类似于TStringList,但功能更强大,能包容一切可被串行化的类实例。在java中被普遍使用。具体可以参照开发工具自带的函数库,在Delphi中也写一个出来(有时间大家一起写啊),但是估计作用不大。因为对Vector支持的Collection,Set类在Java中被设计成一种支持Remote的参数类型,所以作用很大。但在delphi中开发的COM+系统中可能很难支持这样的自自己做的类型。
Billy_Chen28 2003-01-29
  • 打赏
  • 举报
回复
老兄,你试一试不就知道了,不要什么问题都问哦
Eastunfail 2003-01-29
  • 打赏
  • 举报
回复
动态数组?这样不断的改变大小,效率应该很低吧~~~看来也只好用这个来模拟vector,一次多分配些。
还有个问题,假设一个动态数组A,我SetLength为5各元素,每个元素都付值了,然后当我再用SetLength扩大元素数量的时候,前面的5各元素还在么?
z33 2003-01-28
  • 打赏
  • 举报
回复
TStringList
Billy_Chen28 2003-01-28
  • 打赏
  • 举报
回复
例一:
动态数组
var fields: array of integer;

Setlenght(fields)//定义长度



例二:
var
button:array of TButton;
i,rows:integer;
begin
rows:=10;
SetLength(button,rows);
for i:=0 to Rows-1 do
begin
button[i]:=TButton.Create(self);
with button[i] do
begin
Parent:=form1; //此行必不可少,否则控件在屏幕显示不出
top:=i*40;
width:=60;
height:=20;
left:=50;
end;
end;




cgh1970 2003-01-28
  • 打赏
  • 举报
回复
up

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧