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 }