standard template library stl
DESCRIPTION
Standard Template Library STL. STL. STL => Standard Template Library Adalah merupakan kumpulan library yang melengkapi library standard C++. Berisi kumpulan class-class yang umum digunakan, seperti container, algorithm, dan iterator. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/1.jpg)
Standard Template LibrarySTL
![Page 2: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/2.jpg)
STLSTL => Standard Template Library
Adalah merupakan kumpulan library yang melengkapi library standard C++.
Berisi kumpulan class-class yang umum digunakan, seperti container, algorithm, dan iterator.
Menyediakan algoritma dan struktur data dasar untuk permasalahan komputasi.
![Page 3: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/3.jpg)
STLSTL (meliputi)Container
Sequence Container : vector, deque, listAssociative containers : set, multiset, multimap,
mapContainer adapters :stack, queue, priority queue
Algorithm : equal, mismatch, lexicographical_compare, remove, remove_if, replace, replace_if, random_shuffle, count, count_if, min_element, max_element, accumulate, for_each , dll
Iterator
![Page 4: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/4.jpg)
ContainerAdalah sebuah class, data structure, atau
sebuah ADT (abstract Data Type) yang akan menjadi instance dari koleksi object lain.
Digunakan untuk menyimpan object-object dalam bentuk yang terorganisasi diikuti dengan aturan akses tertentu.
![Page 5: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/5.jpg)
ContainerSebuah struktur data dapat
dipandang sebagai tempat penyimpanan benda (container).
Beberapa hal yang dapat dilakukan:Membuat container
baru(konstruktor)Menaruh bendaMengambil bendaMencari benda tertentuMengosongkannya (atau
periksa apakah kosong)Mendapatkan jumlah benda
dalam container (size)
Container
Data
![Page 6: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/6.jpg)
ContainerTerdiri dari 3 macamSequence containers => Container yang
tersusun berdere-deret.Associative containers => merupakan
container yang key-nya diasosiasikan dengan suatu value.
Container adapters => merupakan containers dengan interface spesifik, memanfaatkan containers lain untuk implementasinya.
![Page 7: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/7.jpg)
Sequence containersvector
rapid insertions and deletions at back direct access to any element
dequerapid insertions and deletions at front or back direct access to any element
listdoubly linked list, rapid insertion and deletion anywhere
![Page 8: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/8.jpg)
Associative containersset
rapid lookup, no duplicates allowedmultiset
rapid lookup, duplicates allowedmap
one-to-one mapping, no duplicates allowed, rapid key-based lookup
multimapone-to-many mapping, duplicates allowed, rapid key-based lookup
![Page 9: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/9.jpg)
Container adaptersstack
last-in, first-out (LIFO)queue
first-in, first-out (FIFO)priority_queue
highest-priority element is always the first element out
![Page 10: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/10.jpg)
Container: List
Sebuah List adalah kumpulan benda di mana setiap benda memiliki posisi.
Setiap benda dalam List dapat diakses melalui indeks-nya.
Contoh paling gampang: array!
1 2 3 4Indeks
![Page 11: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/11.jpg)
Container: Vector
Sebuah Vector adalah kumpulan benda di mana setiap benda memiliki posisi dan size-nya dinamis.
Setiap benda dalam List dapat diakses melalui indeks-nya.
Contoh paling gampang: dynamic array!
1 2 3 4Indeks
![Page 12: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/12.jpg)
Vector - Overview of functionsinformative
vector::front - Returns reference to first element of vector.
vector::back - Returns reference to last element of vector.
vector::size - Returns number of elements in the vector.
vector::empty - Returns true if vector has no elements.
vector::capacity - Returns current capacity (allocated memory) of vector.
![Page 13: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/13.jpg)
Vector - Overview of functionsstandard operations
vector::insert - Inserts elements into a vector (single & range), shifts later elements up. O(n) time.
vector::push_back - Appends (inserts) an element to the end of a vector, allocating memory for it if necessary. Amortized O(1) time.
vector::erase - Deletes elements from a vector (single & range), shifts later elements down. O(n) time.
vector::pop_back - Erases the last element of the vector, O(1) time. Does not usually reduce the memory overhead of the vector. Amortized O(1) time.
vector::clear - Erases all of the elements. (For most STL implementations this is O(n) time and does not reduce capacity)
![Page 14: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/14.jpg)
Vector - Overview of functionsallocation/size modification
vector::reserve - Changes capacity (allocates more memory) of the vector, if needed. In many STL implementations capacity can only grow, and is never reduced. O(n) if the vector expands. O(1) if not.
vector::resize - Changes the vector size. O(n) time.
![Page 15: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/15.jpg)
Vector - Overview of functionsiteration
vector::begin - Returns an iterator to start traversal of the vector.
vector::end - Returns an iterator that points just beyond the end of the vector.
![Page 16: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/16.jpg)
Container : StackSebuah Stack adalah kumpulan
benda di mana hanya benda yang most recently inserted dapat diakses.
Bayangkan setumpuk koran.Benda yang paling terakhir
ditambahkan ditaruh di atas tumpukan (top).
Operasi pada Stack membutuhkan waktu konstan (O(1)).
Least recent
Most recent
push
pop,top
![Page 17: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/17.jpg)
Container : Queue
Sebuah Queue adalah kumpulan benda di mana hanya benda yang least recently inserted dapat diakses.
Bayangkan antrian printer job pada jaringan.Benda yang paling awal ditambahkan berada di depan
antrian (front).Operasi pada Queue membutuhkan waktu konstan (O(1)).
enqueue
Most recent
Least recent
dequeuegetFront
![Page 18: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/18.jpg)
Container : Set
Set adalah struktur data yang tidak mengizinkan duplikasi data.
Bandingkan dengan struktur data lain yang mengizinkan kita menyimpan dua data yang sama.
Bayangkan peserta kuliah ini: Setiap peserta unik, tidak ada yang terdaftar dua kali!
tambah
![Page 19: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/19.jpg)
Container : Map
Map adalah struktur data yang berisi sekumpulan pasangan nama (keys) dan nilai (values) dari nama tersebut.
Nama (Keys) harus unik, tapi nilai (values) tidak. Bayangkan basis-data yang berisi informasi peserta kuliah.
Apa yang menjadi “nama” (keys)?
Abdul Betty Chairul DianNama:
Nilai:
![Page 20: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/20.jpg)
Map – member functions
![Page 21: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/21.jpg)
Container : Priority Queue
Priority Queue adalah struktur data queue yang tiap elemen data dapat miliki nilai prioritas. Data dengan nilai prioritas tertinggilah yang dapat diakses terlebih dulu.
Bayangkan sebuah antrian pada printer jaringan. Misalkan ada sebuah permintaan cetak untuk 100 halaman hanya beberapa detik lebih awal dari permintaan cetak selembar halaman.
Highest priority
insert deleteMin
findMin
![Page 22: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/22.jpg)
STL : AlgorithmSebuah method yang efektif untuk problem
solving yang dinyatakan/diungkapkan dalam rangkaian/rentetan instruksi yang terbatas.
Digunakan untuk melakukan kalkulasi, data processing
![Page 23: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/23.jpg)
Iterator
Sebuah object yang mengizinkan programmer melintasi semua element data dari sebuah collection, tanpa memperhatikan bagaimana sebuah collection diimplementasikan
Objek iterator mengendalikan iterasi pembacaan data pada collection c.
Secara umum Iterator bekerja sebagai berikut: Mulai dengan mengatur iterator pada elemen pertama pada
collection. Satu-persatu berlanjut pada elemen selanjutnya Berakhir ketika tidak ada lagi elemen pada collection yang
belum dibaca.
![Page 24: Standard Template Library STL](https://reader035.vdokumen.net/reader035/viewer/2022081508/56813af4550346895da374fe/html5/thumbnails/24.jpg)
Ilustrasi: Iterator
Iterator
Collection
User(program yang mengakses data)