Download
standard template library stl n.
Skip this Video
Loading SlideShow in 5 Seconds..
Standard Template Library STL PowerPoint Presentation
Download Presentation
Standard Template Library STL

Standard Template Library STL

195 Views Download Presentation
Download Presentation

Standard Template Library STL

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Standard Template LibrarySTL

  2. 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. • Menyediakan algoritma dan struktur data dasar untuk permasalahan komputasi.

  3. STL STL (meliputi) • Container • Sequence Container : vector, deque, list • Associative containers : set, multiset, multimap, map • Container 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

  4. Container • Adalah 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.

  5. Container Sebuah struktur data dapat dipandang sebagai tempat penyimpanan benda (container). Beberapa hal yang dapat dilakukan: Membuat container baru(konstruktor) Menaruh benda Mengambil benda Mencari benda tertentu Mengosongkannya (atau periksa apakah kosong)‏ Mendapatkan jumlah benda dalam container (size) Container Data

  6. Container • Terdiri dari 3 macam • Sequence 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.

  7. Sequence containers • vector rapid insertions and deletions at back direct access to any element • deque rapid insertions and deletions at front or back direct access to any element • list doubly linked list, rapid insertion and deletion anywhere

  8. Associative containers • set rapid lookup, no duplicates allowed • multiset rapid lookup, duplicates allowed • map one-to-one mapping, no duplicates allowed, rapid key-based lookup • multimap one-to-many mapping, duplicates allowed, rapid key-based lookup

  9. Container adapters • stack last-in, first-out (LIFO) • queue first-in, first-out (FIFO) • priority_queue highest-priority element is always the first element out

  10. 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! Indeks 1 2 3 4

  11. 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! Indeks 1 2 3 4

  12. Vector - Overview of functions • informative • 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.

  13. Vector - Overview of functions • standard 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)

  14. Vector - Overview of functions • allocation/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.

  15. Vector - Overview of functions • iteration • 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.

  16. Container : Stack Sebuah 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)). push pop,top Most recent Least recent

  17. 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 dequeue getFront Most recent Least recent

  18. 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

  19. 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 Dian Nama: Nilai:

  20. Map – member functions

  21. 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. insert deleteMin findMin Highest priority

  22. STL : Algorithm • Sebuah method yang efektif untuk problem solving yang dinyatakan/diungkapkan dalam rangkaian/rentetan instruksi yang terbatas. • Digunakan untuk melakukan kalkulasi, data processing

  23. Iterator • Sebuah object yang mengizinkan programmer melintasi semua element data dari sebuah collection, tanpa memperhatikan bagaimana sebuah collection diimplementasikan • Objekiteratormengendalikaniterasipembacaan data pada collection c. • SecaraumumIteratorbekerjasebagaiberikut: • Mulaidenganmengaturiteratorpadaelemenpertamapada collection. • Satu-persatuberlanjutpadaelemenselanjutnya • Berakhirketikatidakadalagielemenpada collection yang belumdibaca.

  24. Ilustrasi: Iterator Iterator User(program yang mengakses data) Collection