Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Menguasai std::stack di C++: Panduan Komprehensif dengan Contoh Praktis

Apa Itu std::stack?

std::stack adalah adapter kontainer yang mengimplementasikan prinsip LIFO (Last In, First Out). Ini memungkini penyisipan dan penghapusan elemen hanya dari satu ujung – puncak. Secara default, ia menggunakan std::deque sebagai kontainer dasar, tetapi kontainer urutan apa pun (misalnya, std::vector atau std::list) dapat disediakan.

Adapter kontainer tidak mengekspos iterator, jadi Anda tidak dapat menelusuri stack secara langsung. Sebaliknya, Anda berinteraksi dengannya melalui fungsi anggotanya.

Tujuan Pembelajaran

Sintaks

Sertakan header <stack> dan deklarasikan stack dengan templat berikut:

template<class T, class Container = std::deque<T>> class stack; 

Tipe Anggota

Operasi Inti

Gambaran Umum Implementasi

Di bawah ini adalah representasi visual dari operasi stack (puncak stack ditunjukkan oleh pointer).
Menguasai std::stack di C++: Panduan Komprehensif dengan Contoh Praktis

push() dan pop()

Metode push() menambahkan elemen baru, meningkatkan ukuran dengan satu:

stack.push(value);

Sebaliknya, pop() menghapus elemen puncak dan mengurangi ukuran:

stack.pop();

Contoh 1: Manipulasi Stack Dasar

#include <iostream> #include <stack> using namespace std; int main() { stack<int> st; st.push(10); st.push(20); st.push(30); st.push(40); st.pop(); // removes 40 st.pop(); // removes 30 while (!st.empty()) { cout << ' ' << st.top(); st.pop(); } return 0; }

Output: 20 10

empty(), size(), top()

Fungsi utilitas ini memberikan wawasan cepat tentang status stack.

Contoh 2: Memeriksa Status Stack

#include <iostream> #include <stack> using namespace std; void display(stack<int> s) { while (!s.empty()) { cout << '\t' << s.top(); s.pop(); } cout << '\n'; } int main() { stack<int> st; st.push(32); st.push(21); st.push(39); st.push(89); st.push(25); cout << "The stack st is: "; display(st); cout << "\n st.size() : " << st.size(); cout << "\n st.top() : " << st.top(); st.pop(); cout << "\n st after pop: "; display(st); return 0; }

Output: menampilkan isi stack, ukuran, elemen puncak, dan status setelah pop.

emplace() dan swap()

• emplace() membangun elemen secara langsung, menghindari salinan tambahan.
• swap() menukar isi dua stack secara efisien.

Contoh 3: Menggunakan emplace() dan swap()

#include <iostream> #include <stack> using namespace std; int main() { stack<int> st1, st2; st1.emplace(12); st1.emplace(19); st2.emplace(20); st2.emplace(23); st1.swap(st2); cout << "st1 = "; while (!st1.empty()) { cout << st1.top() << " "; st1.pop(); } cout << endl << "st2 = "; while (!st2.empty()) { cout << st2.top() << " "; st2.pop(); } } 

Output: menunjukkan isi stack sebelum dan setelah pertukaran.

Menggunakan std::stack di STL

Implementasikan stack dengan satu baris:

std::stack<T> st;

Contoh:

#include <iostream> #include <stack> using namespace std; int main() { stack<int> st; st.push(12); st.push(19); st.push(20); cout << st.top(); // 20 cout << st.size(); // 3 return 0; }

Ringkasan

Bahasa C

  1. Operator C++ Dijelaskan: Tipe, Contoh, dan Program Contoh
  2. Perulangan do-while C++: Sintaks, Contoh Praktis, dan Perulangan Bersarang
  3. Menguasai Switch-Case C++: Sintaks, Penggunaan, dan Contoh Praktis
  4. Menguasai Alokasi Array Dinamis C++: Panduan Praktis dengan Contoh Kode
  5. Menguasai Pointer C++: Konsep, Contoh, dan Aplikasi Praktis
  6. Pengoverloadan Operator C++ – Panduan Praktis dengan Contoh Kode
  7. Struct C++ Dijelaskan dengan Contoh Praktis
  8. Menguasai std::map di C++: Panduan Komprehensif dengan Contoh Kode
  9. Menguasai std::list dalam C++: Sintaks, Fungsi & Contoh Praktis
  10. Fungsi C++ Dijelaskan dengan Contoh Kode Praktis