Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Seminář C++ 11. cvičení STL, Trolltech Ing. Jan Mikulka.

Podobné prezentace


Prezentace na téma: "Seminář C++ 11. cvičení STL, Trolltech Ing. Jan Mikulka."— Transkript prezentace:

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:


Stáhnout ppt "Seminář C++ 11. cvičení STL, Trolltech Ing. Jan Mikulka."

Podobné prezentace


Reklamy Google