C++のvectorを使ってアイテムのクラスを動的に生成、イテレータを使って内部の描画関数を呼び出して描画しているのですが、
描画時に何故か時間がかかります。
newを使用してリスト構造を組み、同じように描画した時では、100個ほど生成、描画しても動作が重くならなかったのですが、
vectorを使用すると10個足らずで重くなってしまいます。
都合上vectorを使って作成したいと考えています。
もし解決法を知っていらっしゃる方がおりましたらぜひご教授お願いします。
以下描画部分のみのソース
static void Draw(){
VcItem::iterator ItemIterator;
for (int i = -1; i < DrawMapChipNumY; i++){
for (int j = -1; j < DrawMapChipNumX; j++){
//画面内にあるものだけを描画
if (j + DrawPointX < 0 || i + DrawPointY < 0 ||
j + DrawPointX >= MAP_WIDTH || i + DrawPointY >= MAP_HEIGHT) continue;
//MapDraw
/*マップチップの描画*/
ItemIterator = vcItem.begin();
while (ItemIterator != vcItem.end()){
//アイテムの描画関数を呼び出し
ItemIterator->Draw(i, j);
ItemIterator++;
}
}
}
}