Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Seminář C++ 11. cvičení STL, Trolltech Ing. Jan Mikulka
2
STL ► Standard Template Library ► makra, globální proměnné, datové typy
3
Funkce podle hlavičkových souborů ► ► nabízí funkce sloužící k provádění operací na prvcích kontejnerů pomocí iterátorů ► ► makro testující podmínku, není-li splněna, přeruší program ► ► funkce pro operace v komplexním oboru čísel ► ► test znaků na písmena / čísla / malá / velká /...
4
Funkce podle hlavičkových souborů ► ► funkce, které slouží ke zpracování chyb ► ► funkční objekty (instance tříd) s přetíženým operátorem (), lze použít jako typ ► ► obsahuje manipulátory s parametrem sloužící k formátování vstupu a výstupu ► ► obsahuje manipulátory bez parametru pro formátování vstupu a výstupu a proudové třídy
5
Funkce podle hlavičkových souborů ► ► obsahuje proudovou třídu istream ► ► obsahuje šablony iterátorů a funkce s iterátory ► ► funkce a makra určující národní prostředí ► ► přetížené funkce pro klasifikaci a konverzi znaků
6
Funkce podle hlavičkových souborů ► ► matematické funkce ► ► alokace dočasné paměti, iterátory ► ► dynamické přidělování paměti ► ► numerické výpočty pomocí operátorů
7
Funkce podle hlavičkových souborů ► ► obsahuje třídu ostream a několik manipulátorů ► ► makra a datové typy pro nelokální skoky ► ► funkce a konstanty pro zpracování signálů ► ► makra pro práci s funkcemi s proměnným počtem parametrů
8
Funkce podle hlavičkových souborů ► ► funkce pro práci s proudy / datovými proudy ► ► alokace paměti, operace s programem, převody znaků ► ► funkce pro práci s řetězci ► ► funkce času, počet tiků od startu procesu
9
Funkce podle hlavičkových souborů ► ► matematické funkce pro množiny prvků ►, ►, nástroje pro práci s 16-bitovými znaky
10
STL - třídy ► Kontejnery – implementují nejpoužívanější modely zpracování a ukládání dat – množiny, zásobníky. ► Iterátory – slouží k jednoduchému přístupu k prvkům v kontejnerech ► Proudové třídy – řízení datových proudů ► Locale – přizpůsobení národním zvyklostem ► Matematické třídy – valarray (paralelní výpočty), complex ► Diagnostické třídy – umožňují identifikaci typu v době běhu programu (výhodné u ukazatelů a referencí, zpracování výjimek) ► Další pomocné třídy – dynamická alokace paměti,...
11
Příklad na třídu valarray #include #include using namespace std; void printarray(ostream &s, valarray &array) { for (int i = 0; i < array.size(); i++) for (int i = 0; i < array.size(); i++) s << array[i] << " "; s << array[i] << " "; s<<endl; s<<endl;} int main(int argc, char* argv[]) { int ibuf1[10] = {0,1,2,3,4,5,6,7,8,9}; int ibuf1[10] = {0,1,2,3,4,5,6,7,8,9}; int ibuf2[10] = {0,1,2,3,4,5,6,7,8,9}; int ibuf2[10] = {0,1,2,3,4,5,6,7,8,9}; valarray array1(ibuf1,10); valarray array1(ibuf1,10); valarray array2(ibuf2,10); valarray array2(ibuf2,10); printarray(cout, array1); printarray(cout, array1); printarray(cout, array2); printarray(cout, array2); valarray sum = array1 + array2; valarray sum = array1 + array2; printarray(cout, sum); printarray(cout, sum); getchar(); getchar(); return 0; return 0;}
12
Příklad na třídu queue int main(int argc, char* argv[]) { queue Q; queue Q; Q.push(8); Q.push(8); Q.push(7); Q.push(7); Q.push(6); Q.push(6); Q.push(2); Q.push(2); cout << "Pocet prvku ve fronte: " << Q.size() << endl; cout << "Pocet prvku ve fronte: " << Q.size() << endl; cout << "Vybiram element : " << Q.front() << " z fronty." << endl; cout << "Vybiram element : " << Q.front() << " z fronty." << endl; Q.pop(); Q.pop(); cout << "Pocet prvku ve fronte: " << Q.size() << endl; cout << "Pocet prvku ve fronte: " << Q.size() << endl; getchar(); getchar(); return 0; return 0;}
13
Příklad na třídu string int main(int argc, char* argv[]) { string test; string test; while(test.empty() || test.size() <= 5) while(test.empty() || test.size() <= 5) { cout << "Type a string between 5 and 100 characters long. " << endl; cout << "Type a string between 5 and 100 characters long. " << endl; cin >> test; cin >> test; } cout << "Changing the third character from " cout << "Changing the third character from " << test[2] << " to * " << endl; << test[2] << " to * " << endl; test[2] = '*'; test[2] = '*'; cout << "now its: " << test << endl << endl; cout << "now its: " << test << endl << endl; cout << "Identifying the middle: "; cout << "Identifying the middle: "; test.insert(test.size() / 2, "(the middle is here!)"); test.insert(test.size() / 2, "(the middle is here!)"); cout << test << endl << endl; cout << test << endl << endl; cout << "I didn't like the word 'middle',so " cout << "I didn't like the word 'middle',so " "instead, I'll say:" << endl; "instead, I'll say:" << endl; test.replace(test.find("middle",0), 6, "center"); test.replace(test.find("middle",0), 6, "center"); cout << test << endl; cout << test << endl; cin >> test; cin >> test; return 0; return 0;}
14
Příklad na třídu complex int main(int argc, char* argv[]) { complex a(1.2, 3.4); complex a(1.2, 3.4); complex b(-9.8, -7.6); complex b(-9.8, -7.6); a += b; a += b; a /= sin(b) * cos(a); a /= sin(b) * cos(a); b *= log(a) + pow(b, a); b *= log(a) + pow(b, a); cout << "a = " << a << ", b = " << b << endl; cout << "a = " << a << ", b = " << b << endl; getchar(); getchar(); return 0; return 0;}
15
Zadání cvičení ► Napište program s využitím STL (valarray, complex, string a stream). V programu vygenerujte 2 pole po 10 komplexních číslech a ty pomocí valarray sečtěte. Napište funkci print, která bude jednotlivá pole vypisovat. Dodržte následující deklaraci: void print(ostream &os, valarray array, string head) kde cpx_double je typ complex kde cpx_double je typ complex ► Za bonusový bod nahraďte funkci print přetíženým operátorem << ► Výstupem programu bude:
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.