Differences

This shows you the differences between two versions of the page.

Link to this comparison view

poo-is-ab:laboratoare:11 [2024/12/09 09:34]
razvan.cristea0106 [De ce să folosim STL?]
poo-is-ab:laboratoare:11 [2025/01/19 22:30] (current)
razvan.cristea0106
Line 7: Line 7:
 Studentul va fi capabil la finalul acestui laborator să: Studentul va fi capabil la finalul acestui laborator să:
  
-  * înțeleagă importanța conceptului de programare modernă în C++ și avantajele oferite de utilizarea bibliotecii STL.  ​ +  * înțeleagă importanța conceptului de programare modernă în C++ și avantajele oferite de utilizarea bibliotecii STL 
-  * recunoască și să explice clasele și componentele principale din biblioteca STL.  ​ +  * recunoască și să explice clasele și componentele principale din biblioteca STL 
-  * utilizeze eficient diverse structuri de date și algoritmi disponibili în STL pentru rezolvarea unor probleme concrete.  ​ +  * utilizeze eficient diverse structuri de date și algoritmi disponibili în STL pentru rezolvarea unor probleme concrete 
-  * aplice principiile și cunoștințele dobândite anterior în programare pentru a dezvolta soluții robuste și eficiente folosind STL.  ​ +  * aplice principiile și cunoștințele dobândite anterior în programare pentru a dezvolta soluții robuste și eficiente folosind STL 
-  * identifice și să utilizeze algoritmi standard din STL pentru a optimiza procesele și pentru a simplifica implementarea unor operații complexe. +  * identifice și să utilizeze algoritmi standard din STL pentru a optimiza procesele și pentru a simplifica implementarea unor operații complexe 
-  +
 ==== Introducere ==== ==== Introducere ====
  
Line 43: Line 43:
 ==== ==== ==== ====
  
-Pe scurt, **STL-ul** ne ajută să scriem un cod **robust**, **eficient** și **ușor de înțeles**,​ economisind timp prețios în procesul de dezvoltare. Totuși trebuie menționat că o bună cunoaștere a conceptului de **structuri de date și algoritmi** va simplifca masiv înțelegerea modului în care componentele acestei biblioteci funcționează.+Pe scurt, **STL-ul** ne ajută să scriem un cod **robust**, **eficient** și **ușor de înțeles**,​ economisind timp prețios în procesul de dezvoltare. Totuși trebuie menționat ​faptul ​că o bună cunoaștere a conceptului de **structuri de date și algoritmi** va simplifca masiv înțelegerea modului în care componentele acestei biblioteci funcționează.
  
 ==== Alcătuirea bibliotecii standard din C++ ==== ==== Alcătuirea bibliotecii standard din C++ ====
Line 78: Line 78:
 | **at()** | Returnează caracterul de la o poziție specifică (cu verificare de limite). | | **at()** | Returnează caracterul de la o poziție specifică (cu verificare de limite). |
 | **operator=** | Atribuie un string altui string. | | **operator=** | Atribuie un string altui string. |
-| **operator[]** | Returnează caracterul de la o poziție specifică (fără verificare de limite). |+| **operator[ ]** | Returnează caracterul de la o poziție specifică (fără verificare de limite). |
 | **operator+** | Concatenează două stringuri sau un string și un șir de caractere. | | **operator+** | Concatenează două stringuri sau un string și un șir de caractere. |
 | **operator+=** | Adaugă un string sau un șir de caractere la stringul curent. | | **operator+=** | Adaugă un string sau un șir de caractere la stringul curent. |
Line 164: Line 164:
 </​code>​ </​code>​
  
 +<note tip>​Pentru toate metodele și operatorii puși la dispoziție de clasa **string** recomandăm citirea documentației oficiale care se poate găsi chiar [[https://​en.cppreference.com/​w/​cpp/​string/​basic_string|aici]].</​note>​
 ==== Standard Template Library ==== ==== Standard Template Library ====
  
Line 256: Line 257:
 | **pop_back()** | Elimină ultimul element din vector. | | **pop_back()** | Elimină ultimul element din vector. |
 | **at()** | Returnează elementul de la o anumită poziție, cu verificare de limite. | | **at()** | Returnează elementul de la o anumită poziție, cu verificare de limite. |
-| **operator[]** | Returnează elementul de la o anumită poziție, fără verificare de limite. |+| **operator[ ]** | Returnează elementul de la o anumită poziție, fără verificare de limite. |
 | **size()** | Returnează numărul curent de elemente din vector. | | **size()** | Returnează numărul curent de elemente din vector. |
 | **capacity()** | Returnează capacitatea totală a vectorului, adică numărul maxim de elemente pe care le poate stoca fără a realoca memorie. | | **capacity()** | Returnează capacitatea totală a vectorului, adică numărul maxim de elemente pe care le poate stoca fără a realoca memorie. |
Line 482: Line 483:
 <note warning>​Clasele **stack**, **queue** și respectiv **priority_queue** nu au iteratori puși la dispoziție deoarce singurele operații permise asupra acestor structuri de date sunt cele de **push** și **pop**.</​note>​ <note warning>​Clasele **stack**, **queue** și respectiv **priority_queue** nu au iteratori puși la dispoziție deoarce singurele operații permise asupra acestor structuri de date sunt cele de **push** și **pop**.</​note>​
  
-<note tip>​Pentru mai multe detalii despre clasele **stack**, **queue** și **priority_queue** recomandăm următoarele ​documentații:​+<note tip>​Pentru mai multe detalii despre clasele **stack**, **queue** și **priority_queue** recomandăm ​citirea ​următoarelor ​documentații ​oficiale:
   * pentru stivă puteți citi de [[https://​en.cppreference.com/​w/​cpp/​container/​stack|aici]];​   * pentru stivă puteți citi de [[https://​en.cppreference.com/​w/​cpp/​container/​stack|aici]];​
  
Line 495: Line 496:
  
 ^     ​Denumire metodă/​Operator ​    ​^ ​    ​Descriere ​    ^ ^     ​Denumire metodă/​Operator ​    ​^ ​    ​Descriere ​    ^
-| **operator[]** | Accesează sau inserează un element cu cheia specificată. |+| **operator[ ]** | Accesează sau inserează un element cu cheia specificată. |
 | **at()** | Returnează o referință la valoarea asociată unei chei, aruncând o excepție dacă cheia nu există. | | **at()** | Returnează o referință la valoarea asociată unei chei, aruncând o excepție dacă cheia nu există. |
 | **insert()** | Inserează un element (pereche cheie-valoare) în map. | | **insert()** | Inserează un element (pereche cheie-valoare) în map. |
Line 614: Line 615:
 </​code>​ </​code>​
  
-<note tip>​Pentru mai multe detalii despre clasele **map** și **set** recomandăm următoarele ​documentații:​+<note tip>​Pentru mai multe detalii despre clasele **map** și **set** recomandăm ​citirea ​următoarelor ​documentații ​oficiale:
   * pentru mapă puteți citi de [[https://​en.cppreference.com/​w/​cpp/​container/​map|aici]];​   * pentru mapă puteți citi de [[https://​en.cppreference.com/​w/​cpp/​container/​map|aici]];​
  
Line 661: Line 662:
 </​code>​ </​code>​
  
-<note tip>​Pentru mai mulți algoritmi puși la dispoziție de această librarie recomandăm citirea documentației care se află chiar [[https://​en.cppreference.com/​w/​cpp/​algorithm|aici]].</​note>​+<note tip>​Pentru mai mulți algoritmi puși la dispoziție de această librarie recomandăm citirea documentației ​oficiale ​care se află chiar [[https://​en.cppreference.com/​w/​cpp/​algorithm|aici]].</​note>​
  
 ==== Concluzii ==== ==== Concluzii ====
poo-is-ab/laboratoare/11.1733729657.txt.gz · Last modified: 2024/12/09 09:34 by razvan.cristea0106
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0