C++ algorithm Kütüphanesi: sort, find, count
C++ algorithm kütüphanesini öğrenin. sort, find, count ve diğer STL algoritmalarıyla veri işleme işlemlerini kolaylaştırın.
C++ <algorithm> kütüphanesi, vektörler ve diğer STL konteynerleri üzerinde sık kullanılan işlemleri kolaylıkla yapmamızı sağlayan güçlü fonksiyonlar içerir. Bu makalede en sık kullanılan üç fonksiyon olan sort, find ve count detaylı örneklerle anlatılmaktadır.
1) sort Fonksiyonu
std::sort, bir diziyi veya vektörü varsayılan olarak artan sırada sıralar. Sıralama işlemi genellikle O(n log n) ortalama karmaşıklığa sahiptir.
Temel Kullanım
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
int main() {
vector<int> v = {30, 10, 40, 20};
sort(v.begin(), v.end());
for (int n : v)
cout << n << " ";
}
Çıktı: 10 20 30 40
Azalan Sıralama
sort(v.begin(), v.end(), greater<int>());
Özel Karşılaştırıcı (Custom Comparator)
sort(v.begin(), v.end(), [](int a, int b) {
return a % 10 < b % 10; // son basamağa göre sıralama
});
2) find Fonksiyonu
std::find, bir koleksiyon içindeki elemanı arar ve bulunduğunda ilgili iteratoru döndürür.
Eğer eleman yoksa end() iteratoru döner.
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
int main() {
vector<int> v = {10, 20, 30, 40};
auto it = find(v.begin(), v.end(), 30);
if (it != v.end())
cout << "Bulundu: " << *it;
else
cout << "Bulunamadi!";
}
String Aramak
vector<string> names = {"Ali", "Ayse", "Mehmet"};
auto it = find(names.begin(), names.end(), "Ayse");
3) count Fonksiyonu
std::count, bir koleksiyonda belirli bir değerin kaç kez geçtiğini bulur.
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
int main() {
vector<int> v = {10, 20, 20, 30, 20};
int c = count(v.begin(), v.end(), 20);
cout << "20 sayisi: " << c;
}
Çıktı: 20 sayısı: 3
Şartlı Sayma (count_if)
int c = count_if(v.begin(), v.end(), [](int x) {
return x % 2 == 0; // çift sayı sayma
});
4) Uygulamalı Örnek – Metin İçinde Kelime Sayma
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
using namespace std;
int main() {
vector<string> words = {"cpp", "java", "cpp", "python", "cpp"};
int cppCount = count(words.begin(), words.end(), "cpp");
cout << "cpp kelimesi: " << cppCount << " kez geçti";
}
5) sort, find ve count Bir Arada
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
int main() {
vector<int> v = {50, 20, 10, 20, 40};
sort(v.begin(), v.end()); // 10 20 20 40 50
auto it = find(v.begin(), v.end(), 20); // ilk 20
int c = count(v.begin(), v.end(), 20); // 2 tane 20
cout << "Ilk 20: index " << (it - v.begin()) << endl;
cout << "Toplam 20 sayisi: " << c;
}
6) Ne Zaman Kullanılır?
- sort: her türlü sıralama işlemi için
- find: bir elemanı hızlı şekilde aramak için
- count: bir değerin kaç kere geçtiğini bulmak için
<algorithm> kütüphanesi, STL konteynerleri üzerinde yüksek performanslı işlemler yapmanın en güçlü yoludur.
7) TL;DR
- sort: O(n log n) sıralama fonksiyonu
- find: Eleman arar, iterator döner
- count: Değerin kaç kez tekrarlandığını bulur
- count_if ile şartlı sayma yapılabilir
- Tüm örnekler Visual Studio 2022 ve GCC ile uyumludur
İlişkili Makaleler
C++ İteratör Kavramı ve STL'de Kullanımı
C++'ta iterator kavramını ve STL konteynerleriyle kullanımını öğrenin. Veri dolaşımı, algoritmalar ve modern STL örnekleriyle keşfedin.
C++ set ve multiset ile Eşsiz Elemanlar
C++ std::set ve std::multiset kullanımını öğrenin. Benzersiz elemanlar, sıralı veri yapıları ve performans farkları örneklerle anlatılıyor.
C++ Standard Library'ye Genel Bakış
C++ Standard Library'yi öğrenin. STL bileşenleri, konteynerler, algoritmalar ve modern C++ geliştirmede temel kütüphaneleri keşfedin.
C++ vector Kullanımı ve Özellikleri
C++ std::vector kullanımını öğrenin. Dinamik diziler, eleman ekleme, silme ve erişim işlemlerini pratik örneklerle keşfedin.