C++ 프로그래밍 언어를 사용하여 게임, 그래픽, 웹 서버 등 다양한 프로그램을 만들 수 있습니다. 그러나 때로는 검색, 정렬, 요소 범위 중에서 최대값이나 최소값 찾기 등 프로그램의 데이터에 대해 일부 작업을 수행해야 할 수도 있습니다. 정렬된 요소 범위에서 값의 상한을 찾는 데 사용할 수 있는 함수 중 하나는 upper_bound()입니다.
C++의 upper_bound() 함수란 무엇입니까?
C++의 upper_bound() 함수는 정렬된 범위의 요소와 값을 인수로 사용하고 해당 값보다 큰 범위의 첫 번째 요소를 가리키는 반복자를 반환하는 함수입니다.
여기에는 두 가지 유형의 인수가 있습니다.
상한 개수 ( 하나에. 첫 번째 , 하나에. 마지막 , 값 )
검사할 요소의 범위를 지정하는 반복자는 첫 번째와 마지막입니다. 활용되는 간격에는 첫 번째 요소부터 끝까지 모든 요소가 포함되지만 마지막에 표시된 요소는 포함되지 않습니다. 값은 요소를 비교할 값입니다.
상한 개수 ( 하나에. 첫 번째 , 하나에. 마지막 , 값, 비교 비교 )
이 경우 이진 함수 comp는 bool로 변환될 수 있는 값을 생성하고 범위 항목과 동일한 유형의 두 매개 변수를 허용합니다. 특정 조건에 따라 첫 번째 인수가 두 번째 인수보다 높지 않은 경우 함수는 true 결과를 반환해야 하고, 그렇지 않은 경우 false를 반환해야 합니다.
C++에서 upper_bound() 함수를 사용하는 방법
upper_bound() 함수는 다양한 상황에서 정렬된 요소 범위에서 값의 상한을 찾는 데 사용할 수 있습니다. 예를 들어, 정렬된 배열이나 벡터에서 요소의 위치를 찾거나 집합이나 맵에서 다음으로 큰 요소를 찾는 데 사용할 수 있습니다. 다음은 C++에서 upper_bound() 함수를 사용하는 방법에 대한 몇 가지 예입니다.
예제 1: upper_bound() 함수를 사용하여 정렬된 배열에서 요소의 위치 찾기
다음은 upper_bound() 함수를 사용하여 정렬된 정수 배열에서 요소의 위치를 찾아 화면에 표시하는 예입니다.
#include
#include
사용하여 네임스페이스 성병 ;
정수 기본 ( )
{
정수 정렬 [ ] = { 열 다섯 , 35 , 넷 다섯 , 55 , 65 } ;
정수 ㅏ = 크기 ( 정렬 ) / 크기 ( 정렬 [ 0 ] ) ;
시합 << '배열에는 다음이 포함됩니다: ' ;
~을 위한 ( 정수 나 = 0 ; 나 < ㅏ ; 나 ++ )
시합 << 정렬 [ 나 ] << ' ' ;
시합 << ' \N ' ;
정수 비 = 넷 다섯 ; // 값을 선언하고 초기화합니다.
정수 * 피 = 상한 ( 배열, 배열 + 에, 비 ) ;
시합 << '의 상한' << 비 << '는 다음 위치에 있습니다: ' << ( 피 - 정렬 ) << ' \N ' ; // 포인터 연산을 사용하여 위치를 표시합니다.
반품 0 ;
}
먼저 프로그램은 필요한 헤더 파일과 숫자가 포함된 배열을 정의한 다음 sizeof() 함수를 사용하여 배열의 크기를 가져옵니다. 다음으로 for 루프를 사용하여 배열의 요소를 표시한 다음 포인터를 사용하여 배열의 위치를 결정하고 출력에 표시하는 정수를 선언합니다.
예 2: upper_bound() 함수를 사용하여 집합에서 다음으로 큰 요소 찾기
다음은 upper_bound() 함수를 사용하여 정수 집합에서 주어진 값보다 다음으로 큰 요소를 찾아 화면에 표시하는 예제 코드입니다.
#include#include
#include <벡터>
사용하여 네임스페이스 성병 ;
정수 기본 ( )
{
세트 < 정수 > 하나에 = { 열 다섯 , 25 , 35 , 넷 다섯 , 55 } ; // 정수 집합을 선언하고 초기화합니다.
시합 << '주어진 숫자: ' ;
~을 위한 ( 자동 ㅏ : 하나에 ) // 범위 기반 for 루프를 사용하여 설정된 요소를 표시합니다.
시합 << ㅏ << ' ' ;
시합 << ' \N ' ;
정수 ㅏ = 넷 다섯 ; // 값을 선언하고 초기화합니다.
자동 그것 = 상한 ( 하나에. 시작하다 ( ) , 하나에. 끝 ( ) , ㅏ ) ; // upper_bound()를 사용하여 집합에서 x의 상한을 찾습니다.
만약에 ( 그것 ! = 하나에. 끝 ( ) ) // 반복자가 유효한지 확인
시합 << '다음보다 높은 숫자' << ㅏ << ' 이다 ' << * 그것 << ' \N ' ; // 역참조 연산자를 사용하여 요소를 표시합니다.
또 다른
시합 << '보다 높은 숫자는 없습니다' << ㅏ << ' \N ' ; // 해당 요소가 없으면 메시지를 표시합니다.
반품 0 ;
}
먼저 코드는 필요한 헤더 파일을 정의한 다음 5개 요소의 벡터를 정의합니다. 다음으로 요소의 데이터 유형을 자동으로 설정할 수 있는 auto 키워드를 사용하여 벡터가 표시됩니다. 다음으로 값이 45인 변수가 선언되고 upper_bound() 함수를 사용하여 정의된 벡터와 비교된 후 비교 결과가 표시됩니다.
결론
upper_bound() 함수는 정렬된 범위에서 주어진 값보다 큰 첫 번째 요소를 가리키는 반복자를 반환하는 함수입니다. 지정된 숫자보다 크거나 같은 간격에서 첫 번째 숫자를 찾으려면 C++에서 upper_bound() 함수를 사용하세요. 이는 목록에서 다음으로 높은 숫자를 찾거나 정렬된 배열에서 지정된 임계값보다 큰 첫 번째 요소를 찾는 등의 작업에 유용할 수 있습니다.