C++에서 lower_Bound() 메서드는 무엇입니까

C Eseo Lower Bound Meseodeuneun Mueos Ibnikka



C++ 프로그래밍 언어는 광범위하게 사용되는 광범위한 기능과 메서드를 제공합니다. lower_bound() 메서드는 정렬된 컨테이너에서 주어진 값의 첫 번째 항목을 찾는 데 사용되는 함수 중 하나입니다. 이 문서에서는 C++의 lower_bound() 메서드에 대한 구문, 매개 변수, 반환 값 및 예제 코드를 다룹니다.

lower_bound() 메서드는 무엇입니까?

C++의 lower_bound() 메서드는 정렬된 컨테이너에서 주어진 값의 첫 번째 항목을 찾습니다. C++의 라이브러리의 일부이며 배열, 벡터 및 기타 정렬된 컨테이너에서 이진 검색을 수행하는 데 사용됩니다. lower_bound() 메서드는 컨테이너의 지정된 범위에서 제공된 값보다 작지 않은 첫 번째 요소를 가리키는 반복자를 반환합니다.

통사론







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::iterator 변수를 선언합니다. 이러한 변수는 다른 인수를 사용하여 값 벡터에 대해 std::lower_bound()를 호출한 결과를 저장하는 데 사용됩니다.

std::lower_bound() 함수는 13, 23, 33의 세 가지 다른 값으로 호출됩니다. 각 호출에서 lower_bound()는 벡터에서 다음보다 크거나 같은 첫 번째 요소를 가리키는 반복자를 제공합니다. 지정된 값.

그런 다음 코드는 벡터에서 요소의 인덱스를 제공하는 std::lower_bound()에 의해 반환된 반복자에서 values.begin() 반복자를 빼서 벡터에서 이러한 요소의 위치를 ​​인쇄합니다.

산출

결론

C++의 lower_bound() 메서드는 정렬된 컨테이너에서 주어진 값의 첫 번째 항목을 찾습니다. C++의 라이브러리의 일부이며 배열, 벡터 및 기타 정렬된 컨테이너에서 이진 검색을 수행하는 데 사용할 수 있습니다. 이 메서드는 주어진 값보다 작지 않은 범위의 첫 번째 요소를 가리키는 반복자를 제공합니다. 이 문서에서 lower_bound() 메서드에 대해 자세히 알아보세요.