나는 Draw 함수가 포함 된 Node 클래스가 있습니다. 노드는 다음과 같은 맵에 포함됩니다.
map<std::string, Node*>
반복자를 사용하여 맵의 모든 노드를 그릴 때 아무 일도 발생하지 않습니다. gc는 그리기 기능에 전달하는 그래픽 컨텍스트입니다.
std::map<std::string, Node*>::const_iterator itr = _Nodes.begin();
while(itr != _Nodes.end())
{
itr->second->setX(100);
}
하지만 작동하지 않습니다. 그러나 iterator를 다르게 구성하면 작동합니다.
std::map<std::string, Node*>::const_iterator end = _Nodes.end();
for(std::map<std::string, Node*>::const_iterator it = _Nodes.begin(); it != end; ++it){
it->second->draw(gc);
it->second->setSize(100);
}
제 질문은 왜 다른 하나는 작동합니까?
두 번째 질문은 이름을 지정하지 않고 NodeManager 클래스에 모든 노드를 저장하는 대체 방법은 무엇입니까? 그냥 간단한 목록?
당신은 draw''호출되지 않습니다.그것은 오타 또는 실제 오류입니까? – Naveen
밑줄 - 대문자는 예약되어 있으므로 사용하지 마십시오. 사용하는 것은 정의되지 않은 동작입니다. –