0
我不得不每次都重新創建一個映射,而不是僅僅引用已創建的映射。C++映射和指針
這工作:
void render(Scene *scene) {
map<std::string, Node*> _map = scene->getNodes(); // I don't want recreate the map every time. It is slowing down the render function :(
for(auto outer_iter = _map.begin(); outer_iter!= _map.end(); ++outer_iter) {
outer_iter->second->draw(*scene->getCamera());
}
}
但這並不....
void render(Scene *scene) {
//map<std::string, Node*> _map = scene->getNodes();
for(auto outer_iter = scene->getNodes().begin(); outer_iter!= scene->getNodes().end(); ++outer_iter) {
outer_iter->second->draw(*scene->getCamera());
}
}
我不明白爲什麼會這樣真的。
我怎樣才能引用場景中的地圖而不是每次都重新創建它?
什麼錯誤是這樣的表現呢? – Conduit 2014-12-07 22:08:28
'map'這樣的設計需要更多的[託管指針](http://en.cppreference.com/w/cpp/memory)恕我直言。 –
2014-12-07 22:10:32