Queue delete help

In reply to MP:

why not simply using a foreach with delete? without storing it temporarily:


// Code your testbench here
// or browse Examples
module queues;
  //declaration
  int    queue[$];  
  initial begin
    //Queue Initialization:
    queue = {7,3,1,0,8,1,2,1};
    $display("Queue entries are %p",queue);
    $display("Before Queue size is %0d",queue.size());
    foreach (queue[i]) begin 
       if(queue[i] ==1)
         queue.delete(i);
    end 
    $display("After Queue size is %0d",queue.size());
    $display("Queue after delete, entries are %p",queue);
  end
endmodule

//EXPECTED output is {7,3,0,8,2 }

Other approaches could leverage find item


// Code your testbench here
// or browse Examples
module queues;
  //declaration
  int    queue[$], index[$], qf[$], tmp[$];  
  initial begin
    //Queue Initialization:
    queue = {7,3,1,0,8,1,2,1};
    $display("Queue entries are %p",queue);
    $display("Before Queue size is %0d",queue.size());   
    index = queue.find_index() with (item == 1);
    foreach (queue[ll]) begin
      tmp = index.find() with (item == ll);
      if(!(tmp.size() > 0)) qf.push_back(queue[ll]);
    end
    $display("Indexes are %p",index);
    $display("After Queue size is %0d",queue.size());
    $display("Queue after delete, entries are %p",qf);
  end
endmodule

//EXPECTED output is {7,3,0,8,2 }

//EXPECTED output is {7,3,0,8,2 }