본문 바로가기
PS/기타

구조체에서 lower_bound, upper_bound 사용

by 하_랭 2021. 11. 18.

예를 들어,

 

struct inf {int h, c;};
imf arr[300001];

inf라는 구조체를 사용한 배열에서, lower_bound를 사용한다고 해보자.

(binary_serch로 동작하기 때문에 정렬되어 있어야 함)

 

lower_bound : 기준값 이상인 값

upper_bound : 기준값 초과인 값

 

 

h를 기준으로 lower_bound 를 찾고 싶을 때 비교 함수를 다음과 같이 작성해준다.

bool com(const inf &a, const inf &b) {
    return a.h < b.h;
}

 

찾고자 하는 인덱스를 i라고 했을 때 다음과 같이 사용하면 된다.

auto i = lower_bound(arr, arr + n, inf{arr[ix].h + s, 0}, com) - arr;

 

세번째 인자 (찾고자 하는 값)를 구조체쌍으로 써야함

네번째 인자는 비교함수 

'PS > 기타' 카테고리의 다른 글

[기타] 문자열 관련 알아둘 것  (2) 2021.03.03

댓글