次のように宣言されたマップがあります
std::map<std::string, Texture*> textureMap;
これは、テクスチャ ファイルへのパスを実際のテクスチャにペアリングするために使用します。これにより、個々のスプライトに対して同じテクスチャを何度もロードすることなく、パスでテクスチャを参照できます。どうすればよいかわからないのは、ResourceManager クラス (マップがある場所) のデストラクタでテクスチャを適切に破棄することです。
次のようなイテレータでループを使用することを考えました。
ResourceManager::~ResourceManager()
{
for(std::map<std::string, Texture*>::iterator itr = textureMap.begin(); itr != textureMap.end(); itr++)
{
delete (*itr);
}
}
しかし、それは機能しません.deleteにはポインタが必要です. かなり遅いので、明らかな何かが欠けているだけかもしれませんが、就寝前にこれを機能させたかったのです。それで、私はこれに近づいていますか、それとも完全に間違った方向に進んでいますか?