C++ Lanjutan | #4 STL (Standard Template Library)

STL dalam C++
Thumbnail STL

Standard Template Library (STL) dalam C++

STL (Standard Template Library) dalam C++ adalah koleksi dari kelas template yang menyediakan struktur data, algoritma, dan iterator. STL membantu mempercepat proses pengembangan program dengan menawarkan berbagai macam kontainer dan algoritma yang dapat digunakan kembali.

1. Kontainer STL

STL menawarkan beberapa jenis kontainer yang sering digunakan untuk menyimpan data. Berikut adalah beberapa kontainer yang populer dalam STL:

  • Vector: Kontainer dinamis yang bisa berubah ukuran dan mendukung akses acak.
  • List: Linked list yang memungkinkan penyisipan dan penghapusan cepat di kedua ujung.
  • Deque: Double-ended queue, memungkinkan penyisipan dan penghapusan cepat di depan dan belakang.
  • Stack: Kontainer LIFO (Last In First Out).
  • Queue: Kontainer FIFO (First In First Out).
  • Map: Kontainer pasangan kunci-nilai yang menyimpan elemen dengan kunci unik.
  • Set: Kontainer yang hanya menyimpan elemen unik tanpa duplikasi.

#include <iostream>
#include <vector>
#include <list>
#include <deque>
#include <stack>
#include <queue>
#include <map>
#include <set>

int main() {
    std::vector<int> vec = {1, 2, 3};
    std::list<int> lst = {4, 5, 6};
    std::deque<int> deq = {7, 8, 9};
    std::stack<int> stk;
    std::queue<int> que;
    std::map<int, std::string> mp = {{1, "Satu"}, {2, "Dua"}};
    std::set<int> st = {10, 20, 30};

    return 0;
}
        

2. Iterator dalam STL

Iterator adalah objek yang menunjuk ke elemen di dalam kontainer dan memungkinkan traversal (penjelajahan) melalui elemen-elemen tersebut. Iterator mirip dengan pointer dan mendukung berbagai operasi seperti dereference (*) dan increment (++).


#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
    for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
        std::cout << *it << " ";
    }
    return 0;
}
        

Di sini, iterator digunakan untuk melintasi elemen-elemen dari vektor.

3. Algoritma STL

STL juga menyediakan berbagai algoritma yang dapat digunakan untuk mengoperasikan data di dalam kontainer. Beberapa algoritma umum termasuk:

  • sort(): Mengurutkan elemen dalam kontainer.
  • search(): Mencari elemen tertentu.
  • reverse(): Membalik urutan elemen.

#include <iostream>
#include <algorithm>
#include <vector>

int main() {
    std::vector<int> vec = {5, 3, 8, 6, 2};

    std::sort(vec.begin(), vec.end()); // Mengurutkan vektor
    std::reverse(vec.begin(), vec.end()); // Membalik urutan

    for (int i : vec) {
        std::cout << i << " ";
    }
    return 0;
}
        

4. Fungsi Lambda dalam C++

C++ mendukung fungsi lambda yang memungkinkan kita mendefinisikan fungsi anonim langsung di dalam kode. Lambda sering digunakan dengan algoritma STL untuk memberikan fungsi khusus.


#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // Lambda untuk mengalikan semua elemen dengan 2
    std::for_each(vec.begin(), vec.end(), [](int &n) { n *= 2; });

    for (int i : vec) {
        std::cout << i << " ";
    }
    return 0;
}
        

Pada contoh di atas, fungsi lambda digunakan untuk mengalikan setiap elemen dalam vektor dengan 2.

Kesimpulan

STL dalam C++ memberikan koleksi alat yang kuat untuk menangani berbagai jenis data dan operasi. Dengan kontainer seperti vector, list, map, dan lainnya, serta algoritma yang efisien seperti sort dan reverse, pemrogram dapat menulis kode yang lebih bersih dan dapat dipelihara dengan mudah.

Komentar