SLIDE 10 STLC++
SLIDE 10 STLC++
Template
Library
(STL)
Learning
Outcome
• Mahasiswa
dapat
menggunakan
STL
(Standard
Template
Library)
CPP
Outline
:
-‐ STL
-‐ Container
-‐ Iterator
-‐ Algorithm
STL
• Standard
Template
Library
• Merupakan
kumpulan
library
yang
melengkapi
library
standard
C
++.
• Menyediakan
algoritma
dan
struktur
data
dasar
untuk
permasalahan
komputasi
di
C++
• Berisi
kumpulan
class-‐class
yang
umum
digunakan
dalam
pengoperasian
struktur
data,
yakni
container,
algorithm,
dan
iterator
STL
Komponen
dari
STL:
• Container
:
struktur
data
untuk
menyimpan
elemen
data
• Sequence
Container
:
vector,
deque,
list
• AssociaJve
containers
:
set,
mulJset,
mulJmap,
map
• Container
adapters
:stack,
queue,
priority
queue
Container
STL
Container
• Terdiri
dari
3
macam
1. Sequence
containers
=>
Container
yang
elemennya
tersusun
berderet-‐deret
2. AssociaJve
containers
=>
merupakan
container
yang
key-‐nya
diasosiasikan
dengan
suatu
value.
3. Container
adapters
=>
merupakan
container
dengan
operasi
spesifik,
memanfaatkan
Jpe
container
lain
untuk
implementasinya
Sequence
Container
Container
Jpe
ini
menyusun
elemen
data
secara
sekuensial/
berderet
• Vector
:
inserJon
dan
deleJon
dilakukan
pada
elemen
terakhir,
akses
dapat
dilakukan
pada
seJap
elemen.
• Deque
:
inserJon
dan
deleJon
pada
elemen
pertama
ataupun
elemen
terakhir,
akses
dapat
dilakukan
pada
seJap
elemen
• List
:
berupa
doubly
linked
list,
inserJon
dan
deleJon
dapat
dilakukan
dari
posisi
manapun
Associative
Containers
• Container
Jpe
ini
menyimpan
dan
mengambil
elemen
data
menggunakan
suatu
key
(sering
disebut
search
keys)
• Terdiri
dari
:
• Set/MulJset
:
SeJap
elemen
pada
container
adalah
key
sekaligus
sebagai
value
• Map/MulJmap
:
SeJap
elemen
pada
container
terdiri
dari
pasangan
key
dan
value
Set/Multiset
• Set
:
rapid
lookup,
no
duplicates
allowed
• MulJset
:
rapid
lookup,
duplicates
allowed
Map/Multimap
• Map
:
one-‐to-‐one
mapping,
no
duplicates
allowed,
rapid
key-‐based
lookup
• MulJmap
:one-‐to-‐many
mapping,
duplicates
allowed,
rapid
key-‐based
lookup
Container
adapters
Yakni
container
yang
implementasinya
menggunakan
Jpe
container
lainnya
• Stack
last-‐in,
first-‐out
(LIFO),
dapat
diimplementasikan
menggunakan
vector,
list
maupun
deque
(default)
• Queue
first-‐in,
first-‐out
(FIFO),
diimplementasikan
menggunakan
list
atau
deque
(default)
• Priority_queue
inserJon
dan
deleJon
sesuai
urutan
prioritas
-‐>
heap
tree,
diimplementasikan
menggunakan
deque
atau
vector
(default)
Deklarasi
Vector
• Membuat
vector
kosong
vector<int> v1;
• Mengisi
vector
dengan
empat
nilai
100
vector<int> v2 (4,100);
• Membuat
vektor
v4
yang
isinya
sama
dengan
v2
vector<int> v4 (v2);
• Membuat
vector
v5
yang
isinya
sama
dengan
array
myints
int myints[] = {16,2,77,29};
vector<int> v5(myints, myints + sizeof(myints) /
sizeof(int) );
Vector
Operations
#include <iostream>
#include <vector> Output:
using namespace std; 3
1
2
int main() {
vector<int> vec;
int i;
Bagaimana
membuat
vector
berisi
float
vec.push_back(3);
vec.push_back(1); 0.5
1
2
2.5
vec.push_back(2); serta
menampilkannya
di
layar?