바로 질문 들어간다.

1. a) 다음 코드의 문제점은 무엇이고, 어떻게 수정할 수 있을까?

딱 봐도 문제인것은 키 값을 강제로 변경 시키고 있다. map은 자동 정렬 되기 때문에, 이렇게 key 를 바꾸게 되면, 큰 문제가 생기게 되므로 절대 해야 하지 말아야 한다. 만약 키를 바꾸고 싶다면, 다음 코드처럼 해야 한다.

b) 다음의 코드를 쓰면 어느 정도까지 문제가 해결 될까?

일반적으로 안전하나, 값에 의하여 key 가 변경될 건덕지가 있는 경우 위험하다. 그래서 한가지 사실만 알고 있으면 된다. 절대 키를 건들지 말것


2. set::iterator를 가지고 set의 내용을 수정 할 수 있을까?

수정 할 수는 있으나, 수정해서는 안된다.^^;  set 역시 자동 정렬이기 때문에, 값을 변경하는 즉시 규칙은 무너지게 된다.


총평

.. 정렬 상태를 유지하는 값인 Key 를 변경하는것은 정렬 상태를 유지하지 않겠다는 것과 같으므로, ... 다른 컨테이너를 선택해야 되지 않을까 한다.


신고
posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요