1push() adds a copy of an already constructed object into the queue as a
2parameter, it takes an object of the queue's element type.
3
4emplace() constructs a new object in-place at the end of the queue. It takes
5as parameters the parameters that the queue's element types constructor takes.
6
7If your usage pattern is one where you create a new object and add it to the
8container, you shortcut a few steps (creation of a temporary object and copying
9it) by using emplace().