The best way of using struct, class, and array

In reply to dave_59:

I always thank you, Dave.

I understand your reply for Q2 and Q4. The assignment of a class object is a reference. The built-in find() method is good but using an associated array is recommended if I can use associated array.

I still wonder Q1 and Q3. By inferring Q2, I may be able to know the answer for Q1.
By inferring to Q2, I think an assignment of a struct variable is a copy. If so, I think inserting a struct variable in the queue can cause a performance hit. What do you think?

And Q3… I can’t find the answer in the IEEE 1800-2017 Standard for SystemVerilog.