TL S y r a r b a L t i L ca u L T r S -...
Transcript of TL S y r a r b a L t i L ca u L T r S -...
Luc
a L
ista
Stan
dard
Tem
plat
e L
ibra
ry (
STL
)St
anda
rd T
empl
ate
Lib
rary
(ST
L)
Luc
a L
ista
INF
N, S
ezio
ne d
i Nap
oli
Luc
a L
ista
La
Stan
dard
Lib
rary
La
Stan
dard
Lib
rary
La
libre
ria
stand
ard
ST
L e’
una
libr
eria
di c
lass
i di
cont
enit
ori,
algo
ritm
i ed
itera
tori
.S
TL
e’ u
na li
brer
ia g
ener
ica:
tutti
i su
oi c
ompo
nent
i son
opa
ram
etri
zzat
i med
iant
e l’
utili
zzo
dei t
empl
ate
vetto
ri, l
iste
, map
pe, …
.ve
ttori
, lis
te, m
appe
, ….
find
, rep
lace
, rev
erse
, sor
t, …
. fi
nd, r
epla
ce, r
ever
se, s
ort,
….
punt
ator
i int
elli
gent
ipu
ntat
ori i
ntel
lige
nti
Luc
a L
ista
� �������
�� �
� ��
���
� ���
� ��
���
� � ���
� ��
� �� �
� ��
�� �
��� �
����
Gli
itera
tori
sono
dei
pun
tato
ri ag
li el
emen
ti di
un
cont
enit
ore
e ci
perm
etto
no d
i muo
verc
i all’
inte
rno
di e
sso:
Iter
ator
i mon
odir
ezio
nali
:
Iter
ator
i bid
irez
iona
li:
Iter
ator
i ad
acce
sso c
asua
le :
Perm
etto
no d
i acc
eder
e al
l’el
emen
to
succ
essiv
o o
al p
rece
dent
e
Perm
etto
no d
i acc
eder
e si
a al
l’el
emen
to
succ
essiv
o c
he a
l pre
cede
nte
Perm
etto
no d
i acc
eder
e ad
un
qual
unqu
e el
emen
to d
el c
onte
nito
re
Luc
a L
ista
� ��� ��� � �
��
� ��� ��� � �
��
Un
cont
enito
re e
’ un
ogg
etto
cap
ace
di i
mm
agaz
zina
re a
ltri
ogge
tti (
i suo
i ele
men
ti) e
che
pos
sied
e m
etod
i per
acc
eder
e ai
suoi
ele
men
ti. O
gni c
onte
nito
re h
a un
iter
ator
e as
soci
ato
che
perm
ette
di m
uove
rsit
ra g
li el
emen
ti de
l con
teni
tore
.
Sequ
enze
:U
na s
eque
nza
e’ u
n co
nten
itore
di l
ungh
ezza
var
iabi
le i
cui
elem
enti
sono
org
aniz
zati
line
arm
ente
. E’
poss
ibile
agg
iung
ere
eri
muo
vere
ele
men
ti
Con
teni
tori
asso
ciat
ivi:
Una
seq
uenz
a e’
un
cont
enito
re d
i lun
ghez
za v
aria
bile
che
pe
rmet
te u
n ef
fici
ente
acc
esso
ai s
uoi e
lem
enti
basa
to s
u un
a ch
iave
.
Luc
a L
ista
� ��� �
!�
� ��� �
!�
vect
or:
list :
•T
empo
cos
tant
e di
ins
erim
ento
e c
ance
llazi
one
di e
lem
enti
all’
iniz
io e
alla
fine
del
vet
tore
.
•T
empo
line
are
con
il nu
mer
o di
ele
men
ti pe
r in
seri
men
to e
ca
ncel
lazi
one
di e
lem
enti
all’
inte
rno
del v
etto
re
•It
erat
ore
ad a
cces
so c
asua
le
•T
empo
cos
tant
e di
ins
erim
ento
e c
ance
llazi
one
di e
lem
enti
in
ogni
pun
to d
ella
list
a
•It
erat
ore
bidi
rezi
onal
e
Luc
a L
ista
" #$% &$' % #
(')** #
+')%' ,
'
" #$% &$' % #
(')** #
+')%' ,
'
•map
:
•has
h_m
ap:
Sono
cont
enito
re d
i cop
pie
( ke
y, v
alue
)e
poss
iedo
no u
n ite
rato
rebi
dire
zion
ale
•V
iene
rich
iest
o l’
oper
ator
e <
per
la c
hiav
e
•G
li el
emen
ti so
no o
rdin
ati s
econ
do la
chi
ave
•V
iene
rich
iest
a un
a fu
nzio
ne d
i has
hpe
r la
chi
ave
•N
on v
i e’
alcu
n or
dina
men
to
Luc
a L
ista
-. /01
2 342
-. /01
2 342
fin
d
cou
ntco
py
fill
sort
min
, max
Gli
algo
ritm
i son
o de
lle fu
nzio
ni g
loba
li ca
paci
di a
gire
su
cont
enit
ori d
iffer
enti
Sono
incl
use
oper
azio
ni d
i ord
inam
ento
( sor
t, m
erge
, min
, m
ax...
), d
i ric
erca
( fin
d, c
ount
, equ
al...
), d
i tra
sfor
maz
ione
(t
rans
form
, rep
lace
, fill
, rot
ate,
shu
ffle
...),
e g
ener
iche
op
eraz
ioni
num
eric
he (a
ccum
ulat
e, a
djac
ent d
iffer
ence
...).
Luc
a L
ista
#include < >
#include <algorithm>
#include <iostream>
int main() {
<int> container;
int val;
for(inti=0; i<10; i++) {
val= (int)((float)rand()/RAND_MAX*10);
container.push_back(val);}
<int>::iteratorit1;
for( it1=container.begin();it1!=container.end();it1++)
cout<< "vector: " << *it1 << endl;
find( container.begin(), container.end(), 3 );
sort( container.begin(), container.end() );
for( it1=container.begin(); it1!=container.end(); it1++)
cout<< "vector: " << *it1 << endl;
min_element( container.begin(), container.end());
return 0;
}
5 67
8 9: ;
<6 ;6
7=<7> ?7
5 67
8 9: ;
<6 ;6
7=<7> ?7
vector
vector
vector
list
list
list
Luc
a L
ista
#include <map>
#include <algorithm>
#include <iostream>
int main() {
map<char*,int> amap;
amap.insert( pair<char*,int>("Primo",1));
amap.insert( pair<char*,int>("Secondo",2));
cout
<< "Size
: " << amap.size() << endl;
amap["Terzo"]=3;
amap["Quarto"]=4;
cout
<< "Size
: " << amap.size() << endl;
map<char*,int>::iterator it;
for
( it=amap.begin();
it!=amap.end();
it++)
cout
<< "map
: " << it->first << " " << it->second
<< endl;
cout
<< amap.find("Terzo")->second
<< endl;
return 0;
}
@ AB
C DE F
GA F
H FIJ
BIE J FKELAAF
HELJE M
E
@ AB
C DE F
GA F
H FIJ
BIE J FKELAAF
HELJE M
E