C++
Özet - STL algoritmaları
sort, find ve accumulate'i birleştirerek bir satış raporu yazarsın.
Özet - STL algoritmaları
Bu grupta std::sort, std::find, std::count, std::transform ve std::accumulate algoritmalarını öğrendin. Şimdi bunları bir satış raporunda birleştireceğiz.
Bir satış vektörü üzerinde önce std::sort ile sıralama, sonra std::find ile belirli bir satışı arama yapacağız. İkinci adımda std::accumulate ile toplam satışı hesaplayacağız. Bu, STL algoritmalarının gerçek bir senaryoda nasıl birlikte çalıştığını gösterir.
Uygulama Satışları sırala ve ara
sales = {150, 80, 200, 90} vektörünü std::sort ile artan sırala. Sonra std::find ile 150'yi ara ve bulunursa "bulundu" yazdır. Sıralı listeyi yazdırma; yalnızca arama sonucunu yazdır.
Örnek çözümü göster
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> sales = {150, 80, 200, 90};
std::sort(sales.begin(), sales.end());
auto it = std::find(sales.begin(), sales.end(), 150);
if (it != sales.end()) {
std::cout << "bulundu";
}
return 0;
}
Uygulama Toplam satışı hesapla
Önceki adımın std::sort ve std::find çağrılarını al. #include <numeric> ekle ve std::accumulate ile sales vektörünün toplamını hesaplayıp yazdır. "bulundu" mesajından sonra yeni satıra toplamı yaz.
Örnek çözümü göster
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
int main() {
std::vector<int> sales = {150, 80, 200, 90};
std::sort(sales.begin(), sales.end());
auto it = std::find(sales.begin(), sales.end(), 150);
if (it != sales.end()) {
std::cout << "bulundu";
}
int total = std::accumulate(sales.begin(), sales.end(), 0);
std::cout << total;
return 0;
}
STL algoritmaları özet
STL algoritmaları kapsayıcılar üzerinde çalışan genel işlevlerdir. std::sort sıralar, std::find arar, std::count sayar, std::transform dönüştürür, std::accumulate toplar. Hepsi iterator aralığıyla çalışır.
Bu algoritmaların gücü, kapsayıcı türünden bağımsız olmalarıdır. Aynı std::sort hem std::vector hem std::array üzerinde çalışır. Bir sonraki grupta lambda ifadelerini öğreneceksin; bu, STL algoritmalarına koşul ve işlem geçirmeyi çok daha güçlü hale getirecek.
Kendini test et
-
Bir vektörün toplamını bulmak için hangi algoritma?
std::vector<int> sales = {150, 80, 200};
- std::accumulate
- std::sort
- std::find
- std::count
Cevabı göster
std::accumulate — std::accumulate öğeleri toplar.
-
sort çağrısını tamamla
std::____(sales.begin(), sales.end());
Cevabı göster
std::sort(sales.begin(), sales.end());
Sıradaki ders: Lambda nedir?