std::count
- C++ kursu
- Orta seviye
- Ders 72/116
- 5 dk
std::count ve std::count_if ile sayma öğrenirsin.
std::count
std::count bir aralıkta bir değerin kaç kez geçtiğini sayar. int n = std::count(v.begin(), v.end(), 2); ile 2 değerinin sayısını bulursun. Sonuç bir tamsayıdır.
Kardeşi std::count_if ise bir koşula uyan öğeleri sayar. Koşul, bir lambda veya functor ile verilir: std::count_if(v.begin(), v.end(), [](int x) { return x % 2 == 0; }). Lambda ifadelerini bir sonraki grupta ayrıntılı göreceksin. Şimdilik std::count'un belirli bir değeri saydığını bilmen yeter. İkisi de <algorithm> başlığındadır.
Sayma örneği
Bir sınıf listesinde aynı isimden kaç tane olduğunu bulmak için std::count kullanırsın. std::vector<std::string> üzerinde de çalışır: std::count(names.begin(), names.end(), "Ayşe") ile Ayşe adlı kişilerin sayısını bulursun.
std::count doğrusal çalışır: her öğeyi bir kez kontrol eder. Sonuç, iterator::difference_type türünde olur; genellikle long veya ptrdiff_t. int değişkenine atayabilirsin; çünkü sayı küçükse sorun değildir. Değer bulunmazsa 0 döner.
Uygulama Değerin sayısını yazdır
v = {1, 2, 2, 3, 2, 4} vektöründe std::count ile 2 değerinin sayısını bul ve std::cout ile yazdır.
Başlangıç kodu
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> v = {1, 2, 2, 3, 2, 4};
// std::count ile 2'lerin sayısını yazdır
return 0;
}Örnek çözüm
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> v = {1, 2, 2, 3, 2, 4};
int n = std::count(v.begin(), v.end(), 2);
std::cout << n;
return 0;
}Beklenen çıktı
3
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Algoritmayı amacıyla eşle
| Kavram | Anlamı |
|---|---|
std::count |
Değer sayar |
std::count_if |
Koşul sayar |
std::find |
Değer arar |
std::sort |
Sıralar |
2 count_if çağrısını tamamla
int n = std::____(v.begin(), v.end(), 2);
int n = std::count(v.begin(), v.end(), 2);
Açıklama: std::count bir değerin sayısını verir.
3 std::count(v.begin(), v.end(), 2) ne döndürür?
std::vector<int> v = {1, 2, 2, 3, 2};
auto n = std::count(v.begin(), v.end(), 2);- İlk 2'nin indeksi
- 2'lerin sayısı Doğru cevap
- Vektörün boyutu
- Son 2'nin konumu
Açıklama: std::count 2'lerin sayısını (3) döndürür.