This shows you the differences between two versions of the page.
|
poo-is-ab:laboratoare:11 [2025/12/08 19:08] razvan.cristea0106 [Clasa string] |
poo-is-ab:laboratoare:11 [2025/12/08 19:14] (current) razvan.cristea0106 [Funcții lambda și algoritmi] |
||
|---|---|---|---|
| Line 251: | Line 251: | ||
| ==== Clasa vector ==== | ==== Clasa vector ==== | ||
| - | Pentru clasa **vector** propunem următorul tabel ca și referință: | + | Pentru clasa **vector** propunem următorul tabel ca și referință. |
| ^ Denumire metodă/Operator ^ Descriere ^ | ^ Denumire metodă/Operator ^ Descriere ^ | ||
| Line 789: | Line 789: | ||
| </code> | </code> | ||
| - | <note tip>Pentru a putea modifica **valorile copiilo**r în interiorul **expresiei lambda** trebuie să o marcăm ca fiind **mutabilă**. În acest sens trebuie să utilizăm cuvântul cheie ''**mutable**'' care ne dă posibilitatea să **modificăm variabilele capturate prin valoare** în interiorul unei **funcții anonime**, însă modificările **nu** afectează **variabilele originale** din exterior, deoarece **funcția lambda** lucrează cu **copii** ale acestora.</note> | + | <note tip>Pentru a putea modifica **valorile copiilo**r în interiorul **expresiei lambda** trebuie să o marcăm ca fiind **mutabilă**. În acest sens trebuie să utilizăm cuvântul cheie **mutable** care ne dă posibilitatea să **modificăm variabilele capturate prin valoare** în interiorul unei **funcții anonime**, însă modificările **nu** afectează **variabilele originale** din exterior, deoarece **funcția lambda** lucrează cu **copii** ale acestora.</note> |
| Așadar vom rescrie exemplul de mai sus în care vom avea posibilitatea de această dată să modificăm valoarea copiei lui ''**a**'' în interiorul funcției lambda. | Așadar vom rescrie exemplul de mai sus în care vom avea posibilitatea de această dată să modificăm valoarea copiei lui ''**a**'' în interiorul funcției lambda. | ||
| Line 914: | Line 914: | ||
| </code> | </code> | ||
| - | Dacă am dori să avem un vector sortat descrescător acest lucru ar fi echivalent cu a construi un criteriu custom de sortare pentru a putea face funcția de sortare să înțeleagă faptul că ne dorim să vedem elementele ordonate de la cel mai mare la cel mai mic. Avem două variante prin care putem să facem acest lucru și anume: folosind o funcție care joacă rol de comparator și în care scriem criteriul de sortare sau folosind o expresie lambda in care punem logica de sortare. | + | Dacă am dori să avem un vector sortat descrescător acest lucru ar fi echivalent cu a construi un criteriu custom de sortare pentru a putea face funcția de sortare să înțeleagă faptul că ne dorim să vedem elementele ordonate de la cel mai mare la cel mai mic. Avem două variante prin care putem să facem acest lucru și anume: folosind o funcție care joacă rol de comparator și în care scriem criteriul de sortare sau folosind o expresie lambda în care punem logica de sortare. |
| Pentru a sorta descrescător vectorul folosind un comparator putem proceda în felul următor. | Pentru a sorta descrescător vectorul folosind un comparator putem proceda în felul următor. | ||