Standard Template Library (STL) adalah sekumpulan kelas template C ++ untuk menyediakan struktur dan fungsi data pemrograman umum seperti list, stack, array, dll. Dalam artikel STL dalam C ++ ini kita akan membahas petunjuk berikut:
Pindah dengan artikel ini tentang STL di C ++
Template C ++
C ++ memberi kita fitur template yang memungkinkan fungsi dan kelas beroperasi dengan tipe umum. Hal ini memungkinkan fungsi atau kelas dapat digunakan kembali dan memungkinkannya bekerja pada banyak tipe data yang berbeda tanpa harus ditulis ulang untuk masing-masing.
Pindah dengan artikel ini tentang STL di C ++
Fungsi generik dan STL
Sementara pemrograman banyak waktu, ada kebutuhan untuk membuat fungsi yang melakukan operasi yang sama tetapi bekerja dengan tipe data yang berbeda. Jadi untuk mengatasi masalah ini C ++ menyediakan fitur untuk membuat satu fungsi generik daripada banyak fungsi yang dapat bekerja dengan tipe data yang berbeda dengan menggunakan parameter template. Kumpulan kelas dan fungsi genric ini disebut Standard Template Library (STL)
Komponen STL yang sekarang menjadi bagian dari pustaka C ++ standar ditentukan di namespace std. Oleh karena itu, kita harus menggunakan direktif using namespace untuk mengimpornya ke program kita.
Sintaksis:
Menggunakan namespace std
STL memiliki tiga komponen
Wadah
Algoritma
Iterator
Ketiga komponen ini bekerja sama satu sama lain secara sinergis untuk memberikan dukungan terhadap berbagai solusi pemrograman. Algoritma menggunakan iterator untuk melakukan operasi yang disimpan dalam container.
Wadah adalah suatu objek yang menyimpan data dalam memori secara terorganisir. Kontainer di STL diimplementasikan oleh kelas template dan oleh karena itu dapat dengan mudah dimodifikasi dan dikustomisasi untuk menampung berbagai jenis data.
java sort arraylist dari bilangan bulat
Sebuah prosedur yang digunakan untuk memproses data yang terdapat dalam wadah didefinisikan sebagai suatu algoritma. STL mencakup berbagai jenis algoritme untuk memberikan dukungan pada tugas-tugas seperti menginisialisasi, mencari, menyalin, menyortir, dan menggabungkan, menyalin, menyortir, dan menggabungkan. Algoritma diimplementasikan oleh fungsi template.
Sebuah iterator dapat didefinisikan sebagai sebuah objek yang menunjuk ke sebuah elemen dalam sebuah wadah. Iterator dapat digunakan untuk memindahkan isi wadah. Iterator ditangani seperti pointer. Kami dapat menaikkan atau menurunkannya. Iterator menghubungkan algoritme dengan container dan memainkan peran kunci dalam manipulasi data yang disimpan di container.
Pindah dengan artikel ini tentang STL di C ++
Wadah
STL mendefinisikan sepuluh kontainer yang dikelompokkan menjadi tiga kategori.
Wadah | Deskripsi | File header | Iterator |
Vektor | Ini dapat didefinisikan sebagai array dinamis. Ini memungkinkan akses langsung ke elemen apa pun. | Akses acak | |
Daftar | Ini adalah daftar linier dua arah. Ini memungkinkan penyisipan dan penghapusan di mana saja | Dua arah | |
dan | Ini adalah antrian berujung ganda. Memungkinkan penyisipan dan penghapusan di kedua ujungnya. Mengizinkan akses langsung ke elemen apa pun. | Akses acak | |
set | Ini adalah wadah asosiasi untuk menyimpan set unik. Memungkinkan pencarian cepat. | Dua arah | |
multiset | Ini adalah wadah asosiasi untuk menyimpan set non-unik. | Dua arah | |
peta | Ini adalah wadah asosiasi untuk menyimpan pasangan kunci / nilai unik. Setiap kunci hanya dikaitkan dengan satu nilai. | Dua arah | |
multimap | Ini adalah wadah asosiasi untuk menyimpan kunci / nilai di mana satu kunci dapat dikaitkan dengan lebih dari satu nilai (pemetaan satu-ke-banyak). Ini memungkinkan pencarian berbasis kunci. | Dua arah | |
tumpukan | Tumpukan standar mengikuti last-in-first-out (LIFO) | Tidak ada iterator | |
antre | Antrian standar mengikuti first-in-first-out (FIFO) | Tidak ada iterator | |
prioritas-antrian | Elemen pertama selalu menjadi elemen dengan prioritas tertinggi | Tidak ada iterator |
Sequence Containers
Kontainer urutan menyimpan elemen dalam urutan linier. Semua elemen terkait satu sama lain dengan posisinya di sepanjang garis. Mereka memungkinkan penyisipan elemen dan semuanya mendukung beberapa operasi pada mereka.
STL menyediakan tiga jenis elemen urutan:
- Vektor
- Daftar
- dan
Wadah asosiatif:
Mereka dirancang sedemikian rupa sehingga dapat mendukung akses langsung ke elemen menggunakan kunci. Mereka tidak berurutan. Ada empat jenis
wadah asosiatif:
- Set
- Multiset
- Peta
- Multimap
Semua wadah di atas menyimpan data dalam struktur yang disebut pohon yang memfasilitasi dengan cepat
mencari, menghapus, dan memasukkan tidak seperti berurutan. Kumpulan kontainer atau multiset dapat menyimpan berbagai item dan menyediakan operasi untuk memanipulasinya menggunakan nilai sebagai kuncinya.
Dan peta atau Multimap digunakan untuk menyimpan item secara berpasangan, satu yang disebut kunci dan lainnya
disebut nilai.
Kontainer turunan:
STL menyediakan tiga kontainer turunan yaitu, stack, queue, dan priority_queue. Ini juga dikenal sebagai adaptor kontainer.
Ada tiga jenis wadah turunan:
1. Tumpukan
2. Antrian
3.Priority_quue
Tumpukan, antrian dan antrian prioritas dapat dengan mudah dibuat dari kontainer urutan yang berbeda. Kontainer turunan tidak mendukung iterator dan oleh karena itu kami tidak dapat menggunakannya untuk manipulasi data. Namun, mereka mendukung dua fungsi anggota pop () dan push () untuk mengimplementasikan operasi penghapusan dan penyisipan.
Pindah dengan artikel ini tentang STL di C ++
Algoritma
Algoritme adalah fungsi yang dapat digunakan secara umum di berbagai wadah untuk memproses kontennya. Meskipun setiap kontainer menyediakan fungsi untuk operasi dasarnya, STL menyediakan lebih dari enam puluh algoritme standar untuk mendukung operasi yang lebih luas atau kompleks. Algoritme standar juga mengizinkan kita untuk bekerja dengan dua jenis wadah yang berbeda pada waktu yang bersamaan.
Algoritma STL memperkuat filosofi dapat digunakan kembali. Dengan menggunakan algoritma ini, programmer dapat menghemat banyak waktu dan tenaga. Untuk memiliki akses ke algoritma STL, kita harus memasukkannya ke dalam program kita.
Algoritma STL, berdasarkan sifat operasi yang mereka lakukan, dapat dikategorikan sebagai berikut:
Algoritme nonmutasi
Algoritme mutasi
Algoritme pengurutan
Tetapkan algoritme
Algoritma relasional
Pindah dengan artikel ini tentang STL di C ++
Iterator:
Iterator bertindak seperti pointer dan digunakan untuk mengakses elemen penampung. Kami menggunakan iterator untuk menelusuri konten kontainer. Iterator ditangani seperti pointer. Kami dapat menaikkan atau menurunkannya sesuai kebutuhan kami. Iterator menghubungkan kontainer dengan algoritme dan memainkan peran penting dalam manipulasi data yang disimpan di dalam kontainer. Mereka sering digunakan untuk melewati dari satu elemen ke elemen lainnya, proses ini disebut iterasi melalui wadah.
cara keluar dari program di java
Ada lima jenis iterator:
1. masukan
2. Keluaran
3. Maju
4. Dua arah
5. Acak
Iterator | Metode akses | Arah gerakan | Kemampuan I / O | Ucapan |
Memasukkan | Linear | Teruskan saja | Hanya baca | Tidak bisa disimpan |
Keluaran | Linear | Teruskan saja | Tulis saja | Tidak bisa disimpan |
Meneruskan | Linear | Teruskan saja | Baca tulis | Bisa diselamatkan |
Dua arah | Linear | Maju dan mundur | Baca tulis | Bisa diselamatkan |
Acak | Acak | Maju dan mundur | Baca tulis | Bisa diselamatkan |
Jenis iterator yang berbeda harus digunakan dengan jenis wadah yang berbeda seperti itu saja
urutan dan wadah asosiatif diizinkan untuk melakukan perjalanan melalui iterator. Setiap jenis iterator digunakan untuk menjalankan fungsi tertentu. Iterator input dan output mendukung fungsi paling sedikit. Mereka hanya dapat digunakan untuk melewati dalam wadah. Iterator maju mendukung semua operasi iterator input dan output dan juga mempertahankan posisinya di container. Sebuah iterator dua arah, sementara mendukung semua operasi iterator maju, memberikan kemampuan untuk bergerak ke arah belakang dalam penampung.
Jadi kami telah sampai pada akhir artikel ini tentang 'STL di C ++'. Jika Anda ingin mempelajari lebih lanjut, lihat oleh Edureka, perusahaan pembelajaran online terpercaya. Kursus pelatihan dan sertifikasi Java J2EE dan SOA Edureka dirancang untuk melatih Anda baik konsep inti dan lanjutan Java bersama dengan berbagai kerangka kerja Java seperti Hibernate & Spring.
Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar blog ini dan kami akan menghubungi Anda kembali secepatnya.