항목 8 : set과 map 사용하기 ( 난이도 : 5 )
바로 질문 들어간다. 1. a) 다음 코드의 문제점은 무엇이고, 어떻게 수정할 수 있을까? #include #include int main( void ) { std::map m; std::map::iterator i = m.find( 13 ); if( i != m.end() ) { const_cast( i->first ) = 99999; } return 0; } 딱 봐도 문제인것은 키 값을 강제로 변경 시키고 있다. map은 자동 정렬 되기 때문에, 이렇게 key 를 바꾸게 되면, 큰 문제가 생기게 되므로 절대 해야 하지 말아야 한다. 만약 키를 바꾸고 싶다면, 다음 코드처럼 해야 한다. b) 다음의 코드를 쓰면 어느 정도까지 문제가 해결 될까? #include #include int main( void..
책 정리/More Exceptional C++
2008. 12. 22. 22:49
최근댓글