luegil   2년 전

도대체 왜틀렸다고 할까요..
잠을못자겠습니다 도와주십쇼 ㅠㅠ

luegil   2년 전

크기N으로 받은 배열을 고대로 정렬해서 출력하는데 왜그럴까요..

좀만더 가르침을 주시면 감사하겠습니다.

chogahui05   2년 전

후.. 생각보다 어려운 문제였네요. 생각보다..

std::sort를 써 보세요. 왜 그런지는 제가 읽어볼 만한 링크와, 제 나름대로 이해한 것들을 추가로 찾아서 댓글을 달아드릴게요.

http://stackoverflow.com/quest...

http://stackoverflow.com/quest...

chogahui05   2년 전

http://en.cppreference.com/w/c...

이 문서 보시는 걸 추천드립니다.

The type of the elements of the array must be a TrivialType, otherwise the behavior is undefined.

이게 굉장히 중요한데요. 원소들의 타입이 Trivial Type이 아니면, 동작이 Undefined된다는 겁니다.

아래 코드를 돌려보면 String이 TrivialType인지, 그렇지 않은지 알 수 있을 듯 싶네요.

Trivial Type에 대한 정의는 아래 링크를 참조하세요.

http://stackoverflow.com/quest...

luegil   2년 전

더 알아봐야 겠네요 고맙습니당

근데왜 에러도 안뜨고 테스트해볼땐 잘되는건지 모르겠어요 ㅠㅠ

chogahui05   2년 전

말 그대로 Undefined 되어서 그런 듯 싶네요.

정의되지 않은 것이니 환경이나, 혹은 특정한 입력 조건에 따라서 다르게 동작할 수도 있는 위험이 있는 것이지요.

예를 들자면, printf 함수로 "abc"를 출력한다고 했을 때

어떤 환경에서는 abc를 출력하고, 어떤 환경에서는 cba를 출력할 때. 라고 하면 쉽게 와 닿으실 듯 하네요.


저도 ideone에서 반례를 찾아보려고 노력했습니다만. 안 되더군요.

luegil   2년 전

감사합니다 정말  저런거 쓸때 조심해야 겠군요ㅠ

많이 알아가요~

댓글을 작성하려면 로그인해야 합니다.