删除动态数组中特定索引的方法

Method to delete particular index in dynamic array

是否有任何其他方法可以从动态数组中删除特定索引值?

这是我删除数组 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

没有。动态数组被设计为作为一个整体进行分配。队列就是您想要的——它们专门设计用于一次添加和删除一个元素。

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