Algorithm | search, search_n

C++'da bir veri yapısı içinde arama yapmak için kullanılabilecek std::search, std::search_n algoritmalarını sırasıyla anlatmaya çalışalım.

Algorithm | search

search algoritmasının template bildirimi
std::search algoritmasının çalışma prensibi bir veri yapısı içinde başka bir veri yapısının elemanlarını ardışıl olarak arama ve bulduğunda ilk eşitliği sağlayan değerin iteratör değeri ile geri dönmesi üzerinedir. search çağrısı sırasında verilen ilk iki parametre aranılan veri yapısına ilişkin aralık belirten iteratörler, sonraki iki parametre ise aranacak veri yapısına ilişkin başlangıç - bitiş iteratör değerleridir. Ve 5. parametre olarak Binary Predicate bir callable ifade de karşılaştırma için yazılabilmektedir.

Algorithm | search örneği - 1

Yukarıdaki örnekte ivecB içinde ardışıl olarak 2, 3, 5, 7 değerleri aranır ve bulunursa indeks değeri ile geri dönmektedir. Aşağıda ise programın ekran çıktısını görebiliriz.

Örnek - 1 : Çıktı

Aşağıdaki örnekte ivecB içinde ardışıl olarak 2, 3, 5, 7 değerleri aranır ve bulunursa indeks değeri ile geri dönmektedir. Bu örnekte yukarıdakinden faklı olarak binary predicate bir lambda ifadesi yazılmıştır.

Algorithm | search örneği - 2
Aşağıda ise programın ekran çıktısını görebiliriz.

Örnek - 2 : Çıktı

Algorithm | search_n

search_n algoritmasının template bildirimi
std::search_n algoritmasının çalışma prensibi bir veri yapısı içindeki elemanların tekrar edip etmediğini arama üzerinedir. Burada minimum kaç tekrarı ve hangi elemanı tekrar ettiğini parametre olarak almaktadır. search_n çağrısı sırasında verilen ilk iki parametre aranılan veri yapısına ilişkin aralık belirten iteratörler, sonraki iki parametre ise aranacak verinin kaç kez tekrar ettiği ve hangi elemanın tekrar edip etmediği bilgisinin girildiği değerlerdir. Ve 5. parametre olarak Binary Predicate bir callable ifade de karşılaştırma için yazılabilmektedir.

Algorithm | search_n örneği - 1
Yukarıdaki örnekte 30 değerinin 2 kez tekrar ettiği noktayı ivec vektörü içinde bulmaya çalışan programı yazdık. Aşağıda ise programın ekran çıktısını görebiliriz.

Örnek - 1 : Çıktı

Aşağıdaki örnekte bir string ifade içinde . değerinin 2 kez tekrar ettiği noktayı bulmaya çalışan programı yazdık.

Algorithm | search_n örneği - 2
 Aşağıda ise programın ekran çıktısını görebiliriz.

Örnek - 2 : Çıktı