이 코드가 안전하고 정의되지 않은 동작이 없는지 알고 싶습니다.const_cast (iterator-> second)는 안전한가요?
QueueMap::const_iterator it = m_3playersQueue.find(s->m_GameCode);
if(it == m_3playersQueue.end())
{
std::deque<Session*> stack;
stack.push_back(s);
m_3playersQueue[s->m_GameCode] = stack;
return;
}
const_cast<std::deque<Session*>&>(it->second).push_back(s);
QueueMap is of type std::tr1::unordered_map< uint32, std::deque<Session*> >
m_3playersQueeu가 const 인 경우,'find'는'const_iterator'를 리턴합니다. – Chris
나는 그것에 대해 알고있다. 나는 단순히 const_iterator를 반복자로 변경할 수 있다는 것을 알고있다. 그러나 그 코드는 재미있었습니다. const_iterator는 반복기보다 조금 빠릅니다. 이유는 무엇입니까? – Zaffy
@quarry : 조기에 최적화 할 수있는 것 같습니다. –