stacks queues stl
STL'deki Yığın ve Kuyrukların Uygulanmasını Örneklerle Öğrenin.
Yığınlar ve kuyruklar, doğası gereği çok temel olan STL'deki iki kapsayıcıdır. Yazılım programlamada geniş uygulamalara sahip en basit konteynerlerdir.
Bu eğitimde, bu konteynerlerin her ikisinin de STL'de ayrıntılı bir uygulamasını göreceğiz. Yığın ve kuyruk tarafından desteklenen çeşitli işlemlerden örneklerle de geçeceğiz.
=> Buradaki Basit C ++ Eğitim Serisine Dikkat Edin.
Ne öğreneceksin:
Yığınlar
STL'deki yığın kabı, bir tür kap bağdaştırıcısıdır. C ++ 'da bir yığın veri yapısını kopyalamak için kullanılır. Yığın kabı, öğelerin bir uca eklendiği ve aynı uçtan silindiği bir dizi öğedir.
Bu ortak ekleme ve silme noktası 'Yığının en üstü' olarak bilinir.
Yığının resimli temsili aşağıda gösterilmiştir.
Yukarıdaki sunumda gösterildiği gibi, yığın, öğelerin Yığının Üstü adı verilen aynı uçtan eklendiği ve silindiği bir konteynerdir.
Toplama ve silme işlemi aynı uçta olduğu için stack konteynerin LIFO (son giren, ilk çıkar) tipi bir iş olduğunu söyleyebiliriz. Bu, ilk eklenen öğenin silinecek son öğe olacağı anlamına gelir.
Yığın konteynerini uygulamak için, başlığı programımıza dahil etmemiz gerekiyor.
#include
Yığın kapsayıcı için genel bildirim sözdizimi şöyledir:
stack stackName;
Yığın İşlemleri
Daha sonra, konteynerin STL desteklerinde istiflendiği çeşitli işlemleri tartışalım.
- it : itme işlemi, yığına bir öğe eklemek için kullanılır. Bu işlem, öğeleri her zaman yığının en üstüne ekler.
Tamsayı türünde boş bir yığın gizemi düşünün .
Ardından, yığına öğe 1 ekleyelim.
Ardından yığına eleman 3 ekliyoruz.
Temsile göre, bir itme işleminin bir sonucu olarak, yığının tepesine bir eleman eklenir. Her itme işleminden sonra, yığın boyutu 1 artar.
- pop : pop işlemi, yığından bir öğeyi kaldırmak için kullanılır. Kaldırılan öğe, yığının tepesi tarafından işaret edilen öğedir. Pop işleminin bir sonucu olarak, yığın boyutu 1 azaltılır.
Pop operasyonunun nasıl göründüğüne bakalım:
Zaten 2 öğe ittiğimiz gizemli yığını yukarıdaki gibi düşünün.
Şimdi fonksiyonu pop () olarak adlandıralım. Bu çağrı yürütüldüğünde, yığının en üstündeki öğe kaldırılır ve aşağıda gösterildiği gibi 'Üst' bir sonraki öğeyi gösterir.
Tekrar pop () çağırırsak, bir sonraki eleman (bu durumda 1) kaldırılacak ve boş bir yığınla sonuçlanacaktır.
kullanılacak sahte e-posta adreslerinin listesi
- üst : Yığının en üstteki öğesini döndürür.
- boş : Yığının boş olup olmadığını kontrol eder.
- boyut: Yığının boyutunu, yani yığındaki öğe sayısını döndürür.
İşlemleri daha iyi anlamak için aşağıda bir Yığın uygulaması örneği verilmiştir.
#include #include using namespace std; void printStack(stack stk) { while (!stk.empty()) { cout << ' ' << stk.top(); stk.pop(); } cout << '
'; } int main () { stack oddstk; oddstk.push(1); oddstk.push(3); oddstk.push(5); oddstk.push(7); oddstk.push(9); cout << 'The stack is : '; printStack(oddstk); cout << '
Size of stack: ' << oddstk.size(); cout << '
Top of stack: ' << oddstk.top(); cout << '
oddstk.pop() : '; oddstk.pop(); printStack(oddstk); cout<<'
Another pop(): '; oddstk.pop(); printStack(oddstk); return 0; }
Yukarıdaki örnek, bir yığın oluşturan itme işlemini açıkça göstermektedir. Ayrıca, iki ardışık pop işleminden sonra yığını gösterir.
Böylece STL'de yığın ve işlemlerini gördük. Ayrıca, bu eğitimde, 'Kuyruk' olan başka bir basit STL kabının ayrıntılı uygulamasını göreceğiz.
Kuyruk
Sıra, STL'de çok basit ve kullanışlı olan başka bir kapsayıcıdır. Kuyruk kapsayıcısı, C ++ 'daki kuyruk veri yapısının bir kopyasıdır. Yığın aksine, kuyruk konteynerinde iki uç vardır, yani ön ve arka.
Sıranın önünden silinirken arka taraftaki sıraya elemanlar eklenir. Genel olarak, kuyruk FIFO (İlk giren, İlk Çıkar) düzenleme türünü kullanır.
Bir programda bir kuyruk konteyneri uygulamak için, koda bir başlık eklememiz gerekir.
#include
Kuyruğun bildirimi için genel sözdizimi şöyledir:
queue queue_name;
Kuyruk kapsayıcısını şu şekilde ilan ediyoruz:
Queue myqueue;
Kuyruk İşlemleri
Şimdi sıra tarafından desteklenen çeşitli işlemleri göreceğiz.
- it: 'Push' işlevi, öğeyi sıranın sonuna, yani kuyruğun arkasına ekler.
- pop: 'Pop' işlevi, sıranın ilk öğesini, yani kuyruğun önündeki öğeyi kaldırır.
Sıranın push ve pop işlevlerini anlayalım.
Myqueue üzerinde bildirilen boş bir kuyruğu düşünün. Şimdi işlemle sıradaki 2 numaralı çift numarayı itiyoruz
myqueue.push (2);
Şimdi sıra şöyle görünecek:
Daha sonra, 'myqueue.push (4)' çağrısıyla sıraya '4' ekliyoruz.
Şimdi sıra aşağıda gösterildiği gibi görünüyor:
Yukarıda görüldüğü gibi, elemanlar arka uçtan veya arkadan sıraya itilir.
Şimdi myqueue'da operasyonu başlatalım.
myqueue.pop ();
Gördüğümüz gibi, pop () çağrıldığında kuyruğun önündeki eleman kaldırılır. Bu, kuyruğa giren ilk öğenin kuyruktan çıkan ilk öğe olduğu anlamına gelir.
- ön: Bu işlev, kuyruğun ilk öğesine bir başvuru döndürür.
- geri: Geri, kuyruktaki son öğeye bir başvuru döndürür.
- boş: Sıranın boş olup olmadığını kontrol eder.
- boyut: Kuyruğun boyutunu, yani kuyruktaki öğe sayısını döndürür.
Aşağıda, kuyruk kapsayıcısı tarafından kullanılan işlemleri gösteren bir Örnek program verilmiştir.
#include #include using namespace std; void printQueue(queue myqueue) { queue secqueue = myqueue; while (!secqueue.empty()) { cout << ' ' << secqueue.front(); secqueue.pop(); } cout << '
'; } int main() { queue myqueue; myqueue.push(2); myqueue.push(4); myqueue.push(6); myqueue.push(8); cout << 'The queue myqueue is : '; printQueue(myqueue); cout << '
myqueue.size() : ' << myqueue.size(); cout << '
myqueue.front() : ' << myqueue.front(); cout << '
myqueue.back() : ' << myqueue.back(); cout << '
myqueue.pop() : '; myqueue.pop(); printQueue(myqueue); return 0; }
Çıktı:
Sıra myqueue: 2 4 6 8
myqueue.size (): 4
myqueue.front (): 2
myqueue.back (): 8
myqueue.pop (): 4 6 8
Yukarıda gösterildiği gibi, önce bir kuyruk konteyneri tanımlıyoruz. Sonra itme işlemini kullanarak ilk dört çift sayıyı ona ekleriz. Bundan sonra öğeyi kuyruktan çıkarırız ve değiştirilen kuyruğu görüntüleriz.
şirketinizin iç ağında güvenliği artırmak için
Sonuç
Bununla birlikte, yığınlar ve kuyruklar hakkındaki bu öğreticinin sonuna geldik. Daha önce de belirtildiği gibi bunlar, STL'de sahip olduğumuz en basit konteynerler. Kuyruk kabının bir başka çeşidi de 'Öncelik Sırası' olarak bilinir.
Yaklaşan eğitimimizde, STL'de Priority Queue hakkında daha fazla tartışacağız !!
=> Sıfırdan C ++ Öğrenmek İçin Burayı Ziyaret Edin.
Önerilen Kaynaklar
- STL'de Öncelik Sırası
- STL Listeleri
- STL'de HARİTALAR
- STL'de AYARLA
- STL'deki Diziler
- Çizim ile C ++ 'da Kuyruk Veri Yapısı
- STL'de Yineleyiciler
- Çizim ile C ++ 'da Öncelik Sırası Veri Yapısı