플랫폼/C++

pair의 크기 비교 방식

방랑여행 2013. 5. 29. 18:00

같은 종류의 두 pair의 크기 비교는,

 

"사전순 (lexicographical order)" 으로 이루어진다.

 

무슨 말이냐면, first의 element를 먼저 비교하고, 만일 거기서 판가름이 나지 않는 경우에는

 

second를 비교하여 크기를 정하게 된다.

 

 

 

정확한 크기 비교의 정의는

http://stackoverflow.com/questions/2819245/is-stdpairint-stdstring-ordering-well-defined

 

위의 정의에 따르면, pair y 가 x 보다 크다는 것은

case 1. y의 first가 x의 first보다 큰 경우이거나,

case 2. case 1이 만족되지 않았을 때(short-circuit),

            x의 first가 y의 first보다 크지 않으면서, y의 second가 x의 second보다 큰 경우.

 

예를 들어 보자. ( x < y 인 경우 두 가지 )

1. x = (1, 6), y = (2, 1)  -> 이는 case 1에 의해 x < y 이다.

2. x = (1, 6), y = (1, 8) -> 이는  case 2에 의해 x < y 이다.

'플랫폼 > C++' 카테고리의 다른 글

Stringstream 사용법 정리  (0) 2013.07.17
공백을 포함해 한 줄 입력받기  (0) 2013.07.09
Reverse_iterator 에 대해서  (0) 2013.05.31
lower_bound와 upper_bound  (0) 2013.05.30