C++ adalah salah satu bahasa pemrograman yang paling kuat dan menakutkan yang mungkin Anda temui sebagai pemula. Alasannya cukup sederhana. Ini menuntut banyak kode untuk mencapai output yang diinginkan. Pustaka templat standar, atau STL, dapat membantu Anda memecahkan teka-teki ini.

Mempertimbangkan jumlah waktu dan tenaga yang dihabiskan saat menulis kode untuk fungsi seperti menyortir dan mencari, STL dapat membantu Anda melakukan semua operasi ini hanya dengan satu baris kode. Perpustakaan ini dapat sangat berguna untuk pemecahan masalah dan persiapan wawancara teknis.

Apa itu Pustaka Template Standar?

Pustaka Template Standar, atau STL, adalah pustaka C++ yang terdiri dari fungsi dan wadah bawaan. Ini mencakup beberapa kelas template yang menonjol untuk struktur data umum seperti vektor, tumpukan, antrian, dan beberapa fungsi algoritmik praktis seperti pencarian biner untuk membuat pemrograman lebih mudah.

Pustaka Template Standar di C++ terdiri dari empat komponen:

  1. algoritma
  2. Wadah
  3. Fungsi
  4. Iterator

Mari kita lihat algoritma dan container secara lebih mendalam, karena itu adalah komponen STL yang paling umum digunakan.

Algoritma dalam STL

Itu file header adalah bagian dari STL yang terdiri dari beberapa fungsi algoritmik yang dapat digunakan sebagai pengganti pengkodean secara manual. Beberapa algoritma yang disertakan adalah pencarian biner, pengurutan, dan pembalikkan, yang sangat berguna.

Untuk memulainya, Anda perlu mengimpor header di file C++ Anda. Sintaksnya adalah sebagai berikut:

#sertakan 

Untuk metode yang akan datang, pertimbangkan variabel array dengan nilai {6, 2, 9, 1, 4} sebagai contoh.

int arr[] = {6, 2, 9, 1, 4};

menyortir()

Itu menyortir() function membantu Anda mengurutkan semua elemen di dalam struktur data yang ditentukan dalam urutan menaik. Fungsi ini membutuhkan dua parameter: iterator awal dan iterator akhir.

Terkait: Pengantar Algoritma Merge Sort

Sintaksis:

sort (start_iterator, end_iterator);

Berikut ini contoh singkatnya:

urutkan (arr, arr+5);
untuk (int i = 0; saya < 5; saya++) {
cout << arr[i] << " ";
}

Keluaran:

1 2 4 6 9

balik()

Itu balik() fungsi membalikkan urutan elemen dalam struktur data yang ditentukan. Ia menerima dua parameter: iterator awal dan iterator akhir.

Sintaksis:

terbalik (start_iterator, end_iterator);

Berikut adalah contoh singkat untuk metode di atas:

terbalik (arr, arr+5);
untuk (int i = 0; saya < 5; saya++) {
cout << arr[i] << " ";
}

Keluaran:

4 1 9 2 6

*min_element() dan *max_element()

Fungsi-fungsinya *maks_elemen() dan *min_elemen() mengembalikan nilai maksimum dan minimum di dalam struktur data yang ditentukan, masing-masing. Kedua fungsi ini menerima dua argumen: iterator awal dan iterator akhir.

Sintaksis:

*max_element (start_iterator, end_iterator);
*min_element (start_iterator, end_iterator);

Mari kita cari tahu nilai apa yang dikembalikan oleh fungsi-fungsi ini setelah memanggilnya pada array contoh:

cout << *max_element (arr, arr+5) << endl;
cout << *min_element (arr, arr+5) << endl;

Keluaran:

9
1

pencarian_biner()

Itu pencarian_biner() metode yang digunakan untuk menemukan apakah nilai yang ditentukan ada di dalam struktur data atau tidak. Ia menerima tiga argumen: iterator awal, iterator akhir, dan nilai yang ingin Anda temukan.

Pencarian biner hanya berfungsi pada struktur data yang diurutkan. Oleh karena itu, Anda harus menghubungi menyortir() metode terlebih dahulu sebelum pencarian_biner() metode.

Sintaksis:

binary_search (start_iterator, end_iterator, value_to_find)

Berikut demonstrasi metode ini:

urutkan (arr, arr+5);
binary_search (arr, arr+5, 2)? cout<binary_search (arr, arr+5, 7)? cout<

Keluaran:

Elemen ditemukan
Elemen tidak ditemukan

menghitung()

Itu menghitung() metode mengembalikan hitungan kemunculan nilai yang ditentukan di dalam struktur data. Dibutuhkan tiga argumen: iterator awal, iterator akhir, dan nilai untuk dihitung.

Sintaksis:

count (start_iterator, end_iterator, value_to_count);

Berikut ini contoh metode ini:

cout << jumlah (arr, arr+5, 2) << endl;

Keluaran:

1

Kontainer di STL

Wadah adalah struktur data yang menyimpan objek dan data. Vektor, daftar, tumpukan, antrian, set, dan peta adalah beberapa contoh yang menyimpan data di dalamnya sesuai dengan tipe data primitif yang ditentukan. Anda dapat menggunakan wadah ini dengan mengimpor header masing-masing di file C++.

Saat menginisialisasi variabel container, Anda perlu menyebutkan data primitif seperti such ke dalam, arang, tali di dalam <> kurung.

Mari kita jelajahi beberapa wadah ini secara lebih rinci:

Vektor

Vektor adalah array dinamis yang dapat diubah ukurannya dan fleksibel untuk digunakan. Saat Anda menyisipkan atau menghapus elemen dari vektor, ukuran vektor akan disesuaikan secara otomatis. Ini mirip dengan Struktur data ArrayList di Jawa.

Sintaksis:

#sertakan 
vektor variabel_nama;

Berikut adalah beberapa metode vektor penting:

  1. push_back (nilai): Metode ini menambahkan data ke vektor.
  2. pop_back(): Metode ini menghilangkan elemen terakhir dari vektor.
  3. masukkan (indeks, nilai): Metode ini menyisipkan elemen baru sebelum elemen pada posisi yang ditentukan.
  4. ukuran(): Metode ini mengembalikan ukuran vektor.
  5. kosong(): Metode ini memeriksa apakah vektor kosong atau tidak.
  6. depan(): Metode ini mengembalikan nilai pertama dari vektor.
  7. kembali(): Metode kembali mengembalikan nilai terakhir dari vektor.
  8. di (indeks): Metode ini mengembalikan nilai pada posisi yang ditentukan.
  9. hapus (indeks): Metode hapus menghapus elemen dari indeks yang diberikan.
  10. bersih(): Metode ini menghapus semua item dalam vektor.
vektor < int > v = { 23, 12, 56, 10 };
v.push_back (5);
v.push_back (25);
v.pop_back();
auto i = v.insert (v.begin() + 1, 7);
cout << "Ukuran dari vektor yang diberikan " << v.size() << endl;
jika (v.kosong()) {
cout<} lain {
cout<}
cout << "Elemen pada posisi pertama adalah " << v.front() << endl;
cout << "Elemen pada posisi terakhir adalah " << v.back() << endl;
cout << "Elemen pada posisi yang diberikan adalah " << v.at (4) << endl;
v.hapus (v.begin() + 1);
untuk (int i = 0; saya < v.ukuran(); saya++) {
cout<}

Keluaran:

Ukuran vektor yang diberikan 6
Vektor tidak kosong
Elemen di posisi pertama adalah 23
Elemen pada posisi terakhir adalah 5
Elemen pada posisi yang diberikan adalah 10
23 12 56 10 5

Antre

Dalam struktur data antrian, elemen disisipkan dari belakang dan dihapus dari depan. Oleh karena itu, ia mengikuti pendekatan FIFO ("masuk pertama, keluar pertama").

Sintaksis:

#sertakan 
antre variabel_nama;

Berikut adalah beberapa metode antrian penting:

  1. dorong (nilai): Metode ini menambahkan elemen ke antrian.
  2. pop(): Metode ini menghapus elemen pertama dari antrian.
  3. ukuran(): Metode ini mengembalikan ukuran antrian.
  4. depan(): Metode ini mengembalikan elemen pertama dari antrian.
  5. kembali(): Metode ini mengembalikan elemen terakhir dari antrian.
antrian < int > q;
q.push (30);
q.push (40);
q.push (50);
q.push (60);
q.push (70);
cout << "Elemen pertama adalah " << q.front() << endl;
cout << "Elemen terakhir adalah " << q.back() << endl;
cout << "Ukuran antrian adalah " << q.size() << endl;
q.pop();
cout << "Mencetak semua elemen Antrian" << endl;
while (!q.kosong()) {
cout<q.pop();
}

Keluaran:

Elemen pertama adalah 30
Elemen terakhir adalah 70
Ukuran antrian adalah 5
Mencetak semua elemen Antrian
40 50 60 70

Tumpukan

Wadah tumpukan beroperasi pada metode LIFO. LIFO adalah singkatan dari "masuk terakhir, keluar pertama". Data didorong dan muncul dari ujung yang sama.

Sintaksis:

#sertakan 
tumpukan variabel_nama;

Berikut adalah beberapa metode tumpukan penting:

  1. dorong (nilai): Metode ini mendorong elemen dalam tumpukan.
  2. pop(): Metode ini menghapus elemen teratas dari tumpukan.
  3. puncak(): Metode ini mengembalikan nilai elemen terakhir yang dimasukkan dalam tumpukan.
  4. ukuran(): Metode ini mengembalikan ukuran tumpukan.
  5. kosong(): Metode ini memeriksa apakah tumpukan kosong atau tidak.
tumpukan < int > s;
s.push (30);
s.push (40);
s.push (50);
s.push (60);
cout << "Bagian atas tumpukan berisi " << s.top() << endl;
s.pop();
cout << "Bagian atas tumpukan setelah melakukan operasi pop: " << s.top() << endl;
cout << "Mencetak semua elemen tumpukan" << endl;
while (!s.kosong()) {
cout<s.pop();
}

Keluaran:

Bagian atas tumpukan berisi 60
Bagian atas tumpukan setelah melakukan operasi pop: 50
Mencetak semua elemen tumpukan
50 40 30

Set

Wadah set digunakan untuk menyimpan nilai unik, dan nilai elemen tidak dapat diubah setelah dimasukkan ke dalam set. Semua elemen dalam himpunan disimpan dengan cara yang diurutkan. Wadah yang ditetapkan mirip dengan atur struktur data dengan Python.

Sintaksis:

#sertakan 
set variabel_nama;

Berikut adalah beberapa metode set penting:

  1. masukkan (nilai): Metode ini menyisipkan elemen dalam himpunan.
  2. mulai(): Metode ini mengembalikan iterator ke elemen pertama dari himpunan.
  3. akhir(): Metode ini mengembalikan iterator ke elemen terakhir dari set.
  4. ukuran(): Metode ini mengembalikan ukuran set.
  5. kosong(): Metode ini memeriksa apakah himpunan kosong atau tidak.
  6. temukan (nilai): Metode ini mengembalikan iterator ke elemen yang diteruskan dalam parameter. Jika elemen tidak ditemukan maka fungsi ini mengembalikan iterator ke akhir set.
  7. hapus (nilai): Metode ini menghapus elemen tertentu dari set.
atur < int > s;
s.masukkan (20);
s.masukkan (30);
s.insert (40);
s.insert (50);
s.insert (60);
s.insert (60);
s.insert (60);
otomatis i = s.begin();
cout << "Elemen pada posisi pertama " << * i << endl;
cout << "Ukuran himpunan" << s.size() << endl;
s.temukan (20) != s.end()? cout << "Elemen ditemukan" << endl: cout << "Elemen tidak ditemukan" << endl;
s.hapus (30);
cout << "Mencetak semua elemen" << endl;
untuk (otomatis i = s.begin(); saya != s.end(); saya++) {
cout << * saya << " ";
}

Keluaran:

Elemen di posisi pertama 20
Ukuran set 5
Elemen ditemukan
Mencetak semua elemen
20 40 50 60

C++ Tidak Harus Keras

Sama seperti setiap keterampilan lainnya, latihan sangat penting untuk memaksimalkan STL. Wadah dan algoritme ini dapat membantu Anda menghemat banyak waktu dan mudah digunakan. Mulailah dengan mempraktikkan contoh yang ditunjukkan di atas dan pada akhirnya Anda akan mulai menggunakannya dalam proyek Anda sendiri juga.

Namun, jika ini pertama kalinya Anda belajar C++, mulailah dengan mempelajari dasar-dasarnya sebelum Anda melanjutkan untuk memahami STL.

Surel
Cara Mempelajari Pemrograman C++: 6 Situs untuk Memulai

Ingin belajar C++? Berikut adalah situs web dan kursus online C++ terbaik untuk pemula dan programmer berpengalaman.

Baca Selanjutnya

Topik-topik yang berkaitan
  • Pemrograman
  • Tutorial Pengkodean
  • Pemrograman Fungsional
Tentang Penulis
Nitin Ranganath (22 Artikel Diterbitkan)

Nitin adalah pengembang perangkat lunak yang rajin dan mahasiswa teknik komputer yang mengembangkan aplikasi web menggunakan teknologi JavaScript. Dia bekerja sebagai pengembang web lepas dan suka menulis untuk Linux dan Pemrograman di waktu luangnya.

More From Nitin Ranganath

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Satu langkah lagi…!

Harap konfirmasi alamat email Anda di email yang baru saja kami kirimkan.

.