Selamlar THT Ailesi. Bu Hafta, Bir C++ Kütüphanesi Olan C++ STL'yi Ele Alacağız. İyi Okumalar
C++ STL Nedir?
C++ STL, Generic Programlama ile yazılmış, içerisinde; sınıfları, fonksiyonları ve birçok algoritmayı barındıran bir şablon kütüphanesidir.
STL içinde barınan fonksiyon ve sınıfların Generic Programlama ile yazılmasının temel amacı; hazır işlevlerin bilakis daha kolay ve bağımsız bir şekilde kullanılmasına olanak verir.
C++ STL Yapısı
İçindeki yapı itibariyle; Taşıyıcı, Döngü ve Algoritma olarak üç başlık altında incelenebilir.
Algoritma; yapısı gereği, içinde bilgisayar bilimlerine ait olan, sıralama ve arama gibi işlevleri barındırırken;
Taşıyıcı ise içinde yine bilgisayar bilimlerine ait olan; Dizi, Bağlı Liste, İleri Yönlü Bağlı Liste, Hash Table gibi türden bağımsız saklamaya olanak tanır.
Döngü ise Taşıyıcı ve Algoritma arasında köprü kurarak, eldeki Algoritmaları taşıyıcılara taşır ve uygular.
C++ STL Nasıl Kullanılır?
STL kütüphanesinin kullanılması için her kullanılan kütüphaneye ayrı ayrı başlık eklenilmesinden dolayı, hem kod hem başlık fazlalığını önlemek adına
Başlık dosyalarının yer aldığı;
#include <bits/stdc++.h> dosyası kullanılabilir.
C++ STL Örnek Kullanımı
C++ STL String veri türü ile yazılmış örnek bir kod;
C++:
#include <iostream>
#include <vector> // Vector
#include <algorithm> // Sıralama (sort) algoritması
using namespace std;
int main()
{
vector<string> kisiler;
kisiler.push_back("Kasif");
kisiler.push_back("Hakan");
kisiler.push_back("Samet");
kisiler.push_back("Birkan");
for (auto mevcut : kisiler)
{
cout << mevcut << endl;
}
sort(kisiler.begin(), kisiler.end());
for (auto mevcut : kisiler)
{
cout << mevcut << endl;
}
return 0;
}
C++:
#include <iostream>
#include <vector> // Vector
#include <algorithm> // Sıralama (sort) algoritması
using namespace std;
int main()
{
vector<int> sayilar;
sayilar.push_back(1881);
sayilar.push_back(1919);
sayilar.push_back(1923);
sayilar.push_back(1939);
for (auto mevcut : sayilar)
{
cout << mevcut << endl;
}
sort(sayilar.begin(), sayilar.end());
for (auto mevcut : sayilar)
{
cout << mevcut << endl;
}
return 0;
}
Class Türünde Bir Örnek
C++:
#include <iostream>
using namespace std;
class Kisi {
private:
string adi;
protected:
string soyadi;
public:
static int nesneSayisi;
Kisi(string a, string s) {
cout << "Nesne olusturuluyor." << endl;
this->adi = a;
(*this).soyadi = s;
Kisi::nesneSayisi++;
}
string yazdir() {
return this->adi + " " + this->soyadi;
}
~Kisi() {
cout << "Nesne siliniyor." << endl;
}
};
int Kisi::nesneSayisi = 0;
int main(){
Kisi *p;
Kisi k1("XAVİER", "ECKERT");
Kisi k2("LEVİ", "DOMATES");
p = &k2;
cout << k1.yazdir() << endl;
cout << p->yazdir() << endl;
cout << "Kopya sayisi : " << Kisi::nesneSayisi << endl;
return 0;
}
BİR SONRAKİ KONUDA TEKRAR GÖRÜŞMEK DİLEĞİYLE
Son düzenleme: