우선 순위 정의
우선 순위 변경 에 대한 정 의 를 기록 하 십시오.
이것 은 stl 에서 정의 한 비교 구조 입 니 다. 우 리 는 모두 greater 를 사용 하 는 것 이 작은 지붕 더미 이 고 less 는 큰 지붕 더미 이 며 기본 값 은 less 라 는 것 을 알 고 있 습 니 다.
/// One of the @link comparison_functors comparison functors@endlink.
template
struct greater : public binary_function<_tp _tp="" class="hljs-keyword">bool>
{
bool operator()(const _Tp& __x, const _Tp& __y) const
{ return __x > __y; }
};
/// One of the @link comparison_functors comparison functors@endlink.
template
struct less : public binary_function<_tp _tp="" class="hljs-keyword">bool>
{
bool operator()(const _Tp& __x, const _Tp& __y) const
{ return __x < __y; }
};
만약 에 우리 가 구 조 를 정의 하면 이렇게 가설 을 써 서 구 조 를 정의 할 수 있다.
struct Node{
int x,y,z;
}
우 리 는 위의 비교 구 조 를 모방 하여 스스로 비교 구 조 를 정의 한다. 예 를 들 어
struct cmp{
bool operator () (const Node& a,const Node& b) const{
return a.y < b.y;// ,, >
}
}
우선 순위 대기 열 을 만 들 때 이렇게 쓰 세 요.
priority_queuevector,cmp>q;
우 리 는 또한 연산 자 를 다시 불 러 와 서 우선 순 위 를 정의 할 수 있다. 예 를 들 어
struct Node{
int x,y,z;
friend bool operator > (const Node& a,const Node& b){
return a.x > b.x; //greater,
}
friend bool operator < (const Node& a,const Node& b){
return a.x < b.x;//less,
}
}
우 리 는 이렇게 우선 대기 열 을 만 들 수 있다.
priority_queuevector,greater >q;
priority_queuevector,less >q;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.