それがライフタイム管理の場合は、次のようになります。
std::queue<std::shared_ptr<int>> CheckoutLine;
CheckoutLine.push(std::make_shared<int>(firstValeToBePushed))
キューがプロキシのように親切で、他の誰かが実際にオブジェクトの有効期間を所有している場合、間違いなく:
std::queue<std::reference_wrapper<int>> CheckoutLine;
CheckoutLine.push(firstValeToBePushed)
キューをどこにも公開せず、それが内部にある場合は、他の人が示唆しているように、ポインターを保存しても問題ありません。
ただし、ポインターのコレクションをクライアントに公開することは絶対にしないでください。これは、ポインターの寿命を管理する負担をそれらに任せているため、最悪のことであり、コレクションではより厄介です。
もちろん、プリミティブ型または POD の場合は、コピーするだけで問題ありません。ポインターを格納する必要はありません。Move セマンティクスを使用すると、POD 以外でも簡単に使用できます。ただし、複雑な構造を持っている場合や、Move セマンティクスをオブジェクトに実装できない場合を除きます。
#include <functional>forstd::reference_wrapperと#include <memory>for std::shared_ptr、std::unique_ptrおよび友人。最新のコンパイラにアクセスできると仮定します。