110 likes | 268 Views
Az STL könyvtár. Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék. Az STL. STL: S tandard T emplate L ibrary Az ANSI C++ szabvány része Feladata: a leggyakoribb absztrakt adatszerkezetek kezelése Részei: container-ek algoritmusok iterátorok. A container fogalma.
E N D
Az STL könyvtár Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék A C++ programozási nyelv 10. (STL)
Az STL STL: Standard Template Library Az ANSI C++ szabvány része Feladata: a leggyakoribb absztrakt adatszerkezetek kezelése Részei: • container-ek • algoritmusok • iterátorok A C++ programozási nyelv 10. (STL)
A container fogalma • A container olyan osztály, amely objektumokat tartalmazó szerkezetet definiál. • Az STL-ben a container-ek célja absztrakt adatszerkezetek modellezése. A C++ programozási nyelv 10. (STL)
Algoritmus és iterátor fogalma • Az algoritmusok olyan műveletek, amelyek adatszerkezettől függetlenül megfogalmazhatók. • Az iterátor olyan osztály, amelynek célja egy adatszerkezet elemeinek elérése. • Az iterátor teszi lehetõvé a container-ek és az algoritmusok függetlenítését. A C++ programozási nyelv 10. (STL)
Container, algoritmus és iterátor 1. A C++ programozási nyelv 10. (STL)
Container, algoritmus és iterátor 2. A C++ programozási nyelv 10. (STL)
Container-ek az STL-ben • bitset • deque • list • map • multimap • set • multiset • priority-queue • stack • vector A C++ programozási nyelv 10. (STL)
Iterátorok • Egy iterátor objektumra mindig alkalmazható • az indirekció operátor (*) • fajtájától függően a pointer-aritmetika különböző elemei. • Hierarchiába rendezhetők A C++ programozási nyelv 10. (STL)
Iterátorokkal végezhető műveletek • A hierarchiában feljebb lévő iterátor használható egy lejjebb lévő helyett. • A C pointer egy Random access iterátor A C++ programozási nyelv 10. (STL)
Algoritmusok 1. • Olyan függvény-template-ek, amelyek általában iterátor típusú és egyéb paramétereket várnak. Pl: template <class InputIterator, class T> InputIterator find(InputIterator first, InputIterator last,const T value ) { while( first != last && *first != value ) ++first; return first; } A C++ programozási nyelv 10. (STL)
Algoritmusok 2. • Mivel minden pointer iterátor, ez a függvény akár egy egész tömbre is alkalmazható: int* a = new int[100]; int* hely; hely = find( a, a + 10, 1000 ); A C++ programozási nyelv 10. (STL)