两个数组比较的差集问题

MKD 2008-10-28 04:48:41
假设
数组1 数组2
2 3
3 5
4

我要通过比较后取出2,4放到某一数组3
5放到另一个数组4

在php中很容易实现,有个函数array_diff
delphi中数组或stringlist中是否有类似函数?
用循环比较取值的话,我已会。
...全文
427 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
panrongzeng 2008-10-29
  • 打赏
  • 举报
回复
PHP这么强大,比较数组函数都提供?
不过原型一样的,写一个也很简单,如果想优化点的参照PHP原始函数写。
ahjoe 2008-10-29
  • 打赏
  • 举报
回复
1. 排序
2. 一次遍历
APOLLO_TS 2008-10-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 MKD 的回复:]
集合运算符:
+ - * <= >= = <> in
+(并集)
-(差集)
*(交集)
<=(子集)
>=(超集)
这种情况,是要声明类型为集合吗?
这样应该能实现吧
[/Quote]

--------------------------------
集合小没问题,太多元素不行。

----------------------------------
type
TIntSet = set of byte ;
const
A : TIntSet = [2,3,4];
B : TIntSet = [3,5];
procedure DisplayResult( ASet : TIntSet );
var
Form1: TForm1;
implementation

{$R *.dfm}
procedure DisplayResult( ASet : TIntSet );
var
I : Byte;
begin
for I := Low(Byte) to High(Byte) do
if( I In ASet ) then
Form1.Memo1.Lines.Add( IntToStr(I));
end;
procedure TForm1.Button1Click(Sender: TObject);
var

C :TIntSet ;
begin
C:=[];
C:=A-B;
DisplayResult(C);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
C :TIntSet ;
begin
C:=[];
C:=B-A;
DisplayResult(C);
end;
fangsp 2008-10-28
  • 打赏
  • 举报
回复
写个 函数吧
实现起来也不是很麻烦的
MKD 2008-10-28
  • 打赏
  • 举报
回复
集合运算符:
+ - * <= >= = <> in
+(并集)
-(差集)
*(交集)
<=(子集)
>=(超集)
这种情况,是要声明类型为集合吗?
这样应该能实现吧
jadeluo 2008-10-28
  • 打赏
  • 举报
回复
TStrings, TStringList类中都没有类似的函数。

还是自己写个函数来实现吧,不复杂。

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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