Stackler, LIFO (LAST IN FIRST OUT) çalışma türüne sahip bir tür container adaptörüdür.
Burada yeni bir eleman bir uca (üst) eklenir ve bir eleman yalnızca bu uçtan çıkarılır. Stack, temel kapsayıcı olarak vektör veya deque (varsayılan olarak) veya liste (sıralı kapsayıcı sınıfı) kapsüllenmiş bir nesne kullanır ve öğelerine erişmek için belirli bir üye işlev kümesi sağlar.
<aside> 💡 Bu metin biraz kafa karışıklığına neden olmuş olabilir. Burada açıklamaya çalıştığı için aşağıdaki toggle listi aç.
</aside>
Stack ve Queue arasındaki temel farkı hatırlamakta kafa karışıklığı varsa, bu ayrım için gerçek hayattan bir örnek verelim, stack için, kitapların istiflenmesi için en üstteki kitabı kolayca alabiliriz ve kuyruk için ATM'nin önünde para çekmek için kuyrukta durmanız gerektiğinde, ATM'ye yakın olan ilk kişinin ATM'den parayı almak için ilk şansı olduğunu hatırlayın. Yani, kuyruk FIFO (İlk Giren İlk Çıkar) tipi bir çalışmadır.
Stack elemanlarımızı rastgele depolamak için değil sıralı kalması gereken verilerimizi depolamak için kullanırız. Bu durumlarda kullanmak için tercih edilir.
Bir yığın oluşturmak için kodumuza <stack> başlık dosyasını dahil etmeliyiz. Daha sonra std::stack'i tanımlamak için bu söz dizimini kullanırız:
#include <iostream>
#include <stack>
#include <vector>
#include <list>
using namespace std;
int main() {
stack<int> stack1;
stack<int, vector<int>> stack2;
stack<int, list<int>> stack3;
stack<int, deque<int>> stack4;//Stack1 ile farkı yoktur.
}
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<int> stack;
//Burada eklencek değerler stack define edilirken type ile aynı olmalıdır.
stack.push(21);
stack.push(22);
stack.push(24);
stack.push(25);
int num=0;
stack.push(num);
stack.pop();
stack.pop();
stack.pop();
while (!stack.empty()) {
cout << stack.top() <<" ";
stack.pop();
}
//Stack kopyasını alan bir print yazmadığımız için tüm stack gg!
}