lower_bound() 메서드는 무엇입니까?
C++의 lower_bound() 메서드는 정렬된 컨테이너에서 주어진 값의 첫 번째 항목을 찾습니다. C++의
통사론
C++의 lower_bound() 메서드에는 기본 구문과 사용자 지정 구문의 두 가지 변형이 있습니다.
기본 구문
기본 구문은 각각 검색할 범위의 첫 번째 요소와 지난 마지막 요소를 가리키는 ForwardIterator와 범위의 요소를 비교할 값을 사용합니다.
ForwardIterator lower_bound ( ForwardIterator 먼저 , ForwardIterator 마지막 , const 티 & 값 ) ;
맞춤 구문
사용자 정의 구문은 추가로 요소를 정렬하기 위해 엄격한 약한 순서를 따르는 사용자 정의 이진 조건자 함수를 사용합니다.
ForwardIterator lower_bound ( ForwardIterator 먼저 , ForwardIterator 마지막 , const 티 & 값 , 비교 비교 ) ;
매개변수
C++의 lower_bound() 메서드는 세 개의 매개 변수를 사용합니다.
첫째, 마지막: 처음 두 매개변수 'first' 및 'last'는 메서드가 하한을 검색하는 범위 [first, last)를 결정합니다. 범위는 'first'와 'last'라는 두 개의 매개변수로 지정됩니다. 범위에는 '첫 번째' 및 '마지막' 반복자 사이의 모든 요소가 포함되지만 '마지막' 반복자가 가리키는 요소는 제외됩니다.
값: lower_bound() 메서드의 세 번째 매개변수는 'val'입니다. 지정된 범위 내에서 찾아야 하는 하한 값을 나타냅니다. lower_bound() 메서드가 호출되면 컨테이너의 지정된 범위 내에서 주어진 값 'val'보다 크거나 같은 첫 번째 요소를 검색합니다.
비교: lower_bound() 메서드는 이진 비교 함수를 네 번째 매개 변수로 사용할 수도 있습니다. 두 가지 인수를 취합니다. ForwardIterator , 두 번째는 값 . 그런 다음 함수는 두 인수 간의 비교를 기반으로 부울 값을 반환합니다. comp 인수는 인수를 변경하지 않으며 함수 포인터 또는 함수 객체만 될 수 있습니다.
반환 값
lower_bound()는 다음보다 크거나 같은 첫 번째 요소를 가리키는 반복자를 반환합니다. 값 . 컨테이너의 지정된 범위에 있는 모든 요소가 지정된 값보다 작은 경우 값 , lower_bound() 메서드는 범위의 마지막 요소를 가리키는 반복자를 반환하고 모든 요소가 다음보다 큰 경우 값 , 범위의 첫 번째 요소를 가리키는 반복자를 제공합니다.
예제 코드
이 C++ 코드는 std::lower_bound() 함수를 사용하여 정렬된 벡터에서 주어진 값보다 작지 않은 첫 번째 요소를 찾는 방법을 보여줍니다.
#include <비트/stdc++.h>정수 기본 ( )
{
// 입력 벡터
성병 :: 벡터 < 더블 > 값 { 10 , 열 다섯 , 이십 , 25 , 30 } ;
// 벡터 인쇄
성병 :: 쿠우트 << '벡터 포함:' ;
~을 위한 ( 서명되지 않은 정수 나 = 0 ; 나 < 가치. 크기 ( ) ; 나 ++ )
성병 :: 쿠우트 << ' ' << 값 [ 나 ] ;
성병 :: 쿠우트 << ' \N ' ;
성병 :: 벡터 < 더블 >:: 반복자 그것1 , 그것2 , 그것3 ;
// std :: 하한값
그것1 = 성병 :: 하한 ( 가치. 시작하다 ( ) , 가치. 끝 ( ) , 13 ) ;
그것2 = 성병 :: 하한 ( 가치. 시작하다 ( ) , 가치. 끝 ( ) , 23 ) ;
그것3 = 성병 :: 하한 ( 가치. 시작하다 ( ) , 가치. 끝 ( ) , 33 ) ;
성병 :: 쿠우트
<< ' \N 위치에서 요소 13에 대한 lower_bound: '
<< ( 그것1 - 가치. 시작하다 ( ) ) ;
성병 :: 쿠우트
<< ' \N 위치에서 요소 23에 대한 lower_bound: '
<< ( 그것2 - 가치. 시작하다 ( ) ) ;
성병 :: 쿠우트
<< ' \N 위치에서 요소 33에 대한 lower_bound: '
<< ( 그것3 - 가치. 시작하다 ( ) ) ;
반품 0 ;
}
코드는 이중 이름 값 유형의 std::vector를 정의하고 일부 값으로 초기화하는 것으로 시작합니다. 그런 다음 for 루프를 사용하여 벡터의 요소를 인쇄합니다.
다음으로 코드는 it1, it2 및 it3이라는 세 개의 std::vector
std::lower_bound() 함수는 13, 23, 33의 세 가지 다른 값으로 호출됩니다. 각 호출에서 lower_bound()는 벡터에서 다음보다 크거나 같은 첫 번째 요소를 가리키는 반복자를 제공합니다. 지정된 값.
그런 다음 코드는 벡터에서 요소의 인덱스를 제공하는 std::lower_bound()에 의해 반환된 반복자에서 values.begin() 반복자를 빼서 벡터에서 이러한 요소의 위치를 인쇄합니다.
산출
결론
C++의 lower_bound() 메서드는 정렬된 컨테이너에서 주어진 값의 첫 번째 항목을 찾습니다. C++의