还有其他方法可以从动态数组中删除特定的索引值吗?
这是我要删除的数组a的索引2,我将其存储到数组b
module top;
bit[3:0] a [];
bit[3:0] b [];
int k=0;
initial
begin
a={5,6,7,8,9};
foreach (a[i])
$display ("a[%0d]:%d",i,a[i]);
b = new [a.size-1];
foreach (a[i]) begin
if (i == 2) begin
continue;
end
b[k++] = a[i];
end
foreach (b[i])
$display ("b[%0d]:%d",i,b[i]);
end
endmodule
输出:
a[0]: 5
a[1]: 6
a[2]: 7
a[3]: 8
a[4]: 9
b[0]: 5
b[1]: 6
b[2]: 8
b[3]: 9
答案 0 :(得分:0)
不。动态数组被设计为整体分配。队列就是您想要的-它们专门用于一次添加和删除一个元素。
module top;
bit[3:0] a [];
bit[3:0] b [$];
initial
begin
a={5,6,7,8,9};
foreach (a[i])
$display ("a[%0d]:%d",i,a[i]);
b = a
b.delete(2);
foreach (b[i])
$display ("b[%0d]:%d",i,b[i]);
end
endmodule