std::unique_ptrとstd::shared_ptrは、それぞれ異なる目的で使用されます。 std::unique_ptr: リソースの所有権を単一のオブジェクトに限定したい場合に使用します。 所有権の移動が必要な場合は、std::moveを使用して所有権を移動します。 例：std::unique_ptr ptr = std::make_unique(10); std::shared_ptr: 複数のオブジェクトでリソースを共有したい場合に使用します。 参照カウントを持ち、すべてのshared_ptrが破棄されるとリソースが解放されます。 例：std::shared_ptr ptr = std::make_shared(20);