から派生したクラスの形式で C++ std 準拠のメモリ管理を使用したいのですがstd::allocator
、メモリのチャンクを割り当てて、それらを小さな部分で解放および解放できます。boost::pool しか見つかりませんでしたが、これは上記の意味で std に準拠していません。もっと便利なものはありますか、それとも自分でコーディングする必要がありますか?
std::allocator
(多くの小さなオブジェクトを割り当てる場合、つまり を使用する場合、 はしばしば役に立たないことに注意してくださいstd::list
。)
編集して明確にします。
std::list
たとえば、多くの小さなオブジェクトを使用したい場合、その実装をstd::allocator
使用して各オブジェクトを割り当てる::new
と、実行時にかなりのオーバーヘッドが発生します (メモリも同様です)。オブジェクトの大きなチャンクを割り当てて、1 つずつ配布する方がはるかに効率的です。このために、任意のライブラリ コンテナーで使用でき、必要なメモリ管理を提供し、理想的にはオブジェクトの数を伝えることができる、std
準拠したアロケーター (から派生する必要はありませんがstd::allocator
、同じ概念を実装する必要があります) が必要です。std
個別に割り振れそうです。