Метод для удаления определенного индекса в динамическом массиве - PullRequest
0 голосов
/ 10 апреля 2019

Есть ли другой способ удалить определенное значение индекса из динамического массива?

Вот мой пример, например, удалить индекс 2 массива a, который я храню в массиве 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

1 Ответ

0 голосов
/ 10 апреля 2019

Нет.Динамические массивы предназначены для выделения в целом.Очереди - это то, что вам нужно - они специально предназначены для добавления и удаления по одному элементу за раз.

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
...