C++'daki lower_Bound() Yöntemi nedir?

C Daki Lower Bound Yontemi Nedir



C++ programlama dili, yaygın olarak kullanılan çok çeşitli işlevler ve yöntemler sunar. lower_bound() yöntemi, sıralanmış bir kapta belirli bir değerin ilk geçtiği yeri bulmak için kullanılan böyle bir işlevdir. Bu makale, C++'da lower_bound() yöntemi için sözdizimini, parametreleri, dönüş değerlerini ve örnek bir kodu kapsar.

lower_bound() Yöntemi nedir?

C++'daki lower_bound() yöntemi, sıralanmış bir kapta belirli bir değerin ilk geçtiği yeri bulur. C++'daki kitaplığının bir parçasıdır ve diziler, vektörler ve diğer sıralanmış kaplar üzerinde ikili aramalar yapmak için kullanılır. lower_bound() yöntemi, belirtilen bir kapsayıcı aralığındaki ilk öğeye işaret eden ve sağlanan değerden küçük olmayan bir yineleyici döndürür.

Sözdizimi







C++'daki lower_bound() yönteminin iki çeşidi vardır: bir varsayılan ve bir özel sözdizimi.



Varsayılan Sözdizimi

Varsayılan sözdizimi, sırasıyla aranacak aralıktaki ilk ve son öğeleri işaret eden bir ForwardIterator ve aralıktaki öğeleri karşılaştırmak için bir değer alır.



ForwardIterator lower_bound ( Önce ForwardIterator , ForwardIterator son , sabit T & val ) ;

Özel Sözdizimi

Özel sözdizimi ayrıca, öğeleri sıralamak için katı zayıf sıralamayı izleyen, kullanıcı tanımlı bir ikili yüklem işlevi alır.





ForwardIterator lower_bound ( Önce ForwardIterator , ForwardIterator son , sabit T & val , Karşılaştırın ) ;

parametreler

C++'daki lower_bound() yöntemi üç parametre alır.

İlk son: İlk iki parametre, 'birinci' ve 'son', yöntemin alt sınırı aradığı aralığı [ilk, son) belirler. Aralık, “ilk” ve “son” olmak üzere iki parametre ile belirtilir. Aralık, 'ilk' ve 'son' yineleyiciler arasındaki tüm öğeleri içerir ancak 'son' yineleyici tarafından işaret edilen öğeyi hariç tutar.



val: lower_bound() yönteminin üçüncü parametresi “val” olarak anılır. Belirtilen aralık içinde bulunması gereken alt sınırın değerini temsil eder. lower_bound() yöntemi çağrıldığında, bir kapsayıcının belirtilen aralığında verilen 'val' değerinden büyük veya ona eşit olan ilk öğeyi arar.

kompozisyon: lower_bound() yöntemi, dördüncü parametresi olarak bir ikili karşılaştırma işlevini de kabul edebilir. İki bağımsız değişken alır: ForwardIterator ve ikincisi val . İşlev daha sonra iki bağımsız değişken arasındaki karşılaştırmaya dayalı olarak bir Boole değeri döndürür. comp bağımsız değişkeni, bağımsız değişkenlerinden hiçbirini değiştirmez ve yalnızca bir işlev işaretçisi veya bir işlev nesnesi olabilir.

Geri dönüş değeri

lower_bound(), şu değerden büyük veya ona eşit olan ilk öğeye işaret eden bir yineleyici döndürür: val . Bir kapsayıcının belirtilen aralığındaki tüm öğeler verilen değerden küçükse val , lower_bound() yöntemi, aralıktaki son öğeyi işaret eden bir yineleyici döndürür ve tüm öğeler şundan büyükse: val , aralıktaki ilk öğeye işaret eden bir yineleyici verir.

Örnek Kod

Bu C++ kodu, belirli bir değerden küçük olmayan sıralanmış bir vektördeki ilk öğeyi bulmak için std::lower_bound() işlevinin kullanımını gösterir.

#include

int ana ( )

{

// Giriş vektörü

std :: vektör < çift > değerler { 10 , on beş , yirmi , 25 , 30 } ;

// Vektörü yazdır

std :: cout << 'Vektör şunları içerir:' ;

için ( imzasız int Ben = 0 ; Ben < değerler. boyut ( ) ; Ben ++ )

std :: cout << ' ' << değerler [ Ben ] ;

std :: cout << ' \N ' ;

std :: vektör < çift >:: yineleyici o1 , it2 , it3 ;

// std :: alt sınır

o1 = std :: alt sınır ( değerler. başlamak ( ) , değerler. son ( ) , 13 ) ;

it2 = std :: alt sınır ( değerler. başlamak ( ) , değerler. son ( ) , 23 ) ;

it3 = std :: alt sınır ( değerler. başlamak ( ) , değerler. son ( ) , 33 ) ;

std :: cout

<< ' \N 13. öğe için lower_bound şu konumda: '

<< ( o1 - değerler. başlamak ( ) ) ;

std :: cout

<< ' \N 23. öğe için şu konumdaki lower_bound: '

<< ( it2 - değerler. başlamak ( ) ) ;

std :: cout

<< ' \N 33. öğe için lower_bound şu konumda: '

<< ( it3 - değerler. başlamak ( ) ) ;

geri dönmek 0 ;

}

Kod, çift adlandırılmış değerler türünde bir std::vector tanımlayarak ve onu bazı değerlerle başlatarak başlar. Daha sonra bir for döngüsü kullanarak vektörün öğelerini yazdırır.

Ardından, kod it1, it2 ve it3 adlı üç std::vector::iterator değişkeni bildirir. Bu değişkenler, farklı bağımsız değişkenlerle değerler vektöründe std::lower_bound() çağrısının sonuçlarını depolamak için kullanılacaktır.

std::lower_bound() işlevi üç farklı değerle çağrılır: 13, 23 ve 33. Her çağrıda lower_bound(), vektördeki şu değerden büyük veya ona eşit olan ilk öğeye işaret eden bir yineleyici verir: belirlenmiş değer.

Daha sonra kod, vector'deki öğenin dizinini veren std::lower_bound() tarafından döndürülen yineleyiciden Values.begin() yineleyicisini çıkararak vektördeki bu öğelerin konumlarını yazdırır.

Çıktı

Çözüm

C++'daki lower_bound() yöntemi, sıralanmış bir kapta belirli bir değerin ilk geçtiği yeri bulur. C++'daki kitaplığının bir parçasıdır ve diziler, vektörler ve diğer sıralanmış kaplar üzerinde ikili aramalar yapmak için kullanılabilir. Yöntem, verilen değerden küçük olmayan bir aralıktaki ilk öğeye işaret eden bir yineleyici verir. Bu makalede lower_bound() yöntemi hakkında daha fazla bilgi edinin.