Semin c
This presentation is the property of its rightful owner.
Sponsored Links
1 / 15

Seminář C++ PowerPoint PPT Presentation


  • 55 Views
  • Uploaded on
  • Presentation posted in: General

Seminář C++. 11. cvičení STL, Trolltech. Ing. Jan Mikulka. STL. Standard Template Library makra, globální proměnné, datové typy. Funkce podle hlavičkových souborů. < alghoritm > nabízí funkce sloužící k provádění operací na prvcích kontejnerů pomocí iterátorů < assert.h >

Download Presentation

Seminář C++

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Semin c

Seminář C++

11. cvičení

STL, Trolltech

Ing. Jan Mikulka


Semin c

STL

  • Standard Template Library

  • makra, globální proměnné, datové typy


Funkce podle hlavi kov ch soubor

Funkce podle hlavičkových souborů

  • <alghoritm>

    • nabízí funkce sloužící k provádění operací na prvcích kontejnerů pomocí iterátorů

  • <assert.h>

    • makro testující podmínku, není-li splněna, přeruší program

  • <complex>

    • funkce pro operace v komplexním oboru čísel

  • <ctype.h>

    • test znaků na písmena / čísla / malá / velká /...


Funkce podle hlavi kov ch soubor1

Funkce podle hlavičkových souborů

  • <exception>

    • funkce, které slouží ke zpracování chyb

  • <functional>

    • funkční objekty (instance tříd) s přetíženým operátorem (), lze použít jako typ

  • <iomanip>

    • obsahuje manipulátory s parametrem sloužící k formátování vstupu a výstupu

  • <ios>

    • obsahuje manipulátory bez parametru pro formátování vstupu a výstupu a proudové třídy


Funkce podle hlavi kov ch soubor2

Funkce podle hlavičkových souborů

  • <istream>

    • obsahuje proudovou třídu istream

  • <iterator>

    • obsahuje šablony iterátorů a funkce s iterátory

  • <locale.h>

    • funkce a makra určující národní prostředí

  • <locale>

    • přetížené funkce pro klasifikaci a konverzi znaků


Funkce podle hlavi kov ch soubor3

Funkce podle hlavičkových souborů

  • <math.h>

    • matematické funkce

  • <memory>

    • alokace dočasné paměti, iterátory

  • <new>

    • dynamické přidělování paměti

  • <numeric>

    • numerické výpočty pomocí operátorů


Funkce podle hlavi kov ch soubor4

Funkce podle hlavičkových souborů

  • <ostream>

    • obsahuje třídu ostream a několik manipulátorů

  • <setjmp.h>

    • makra a datové typy pro nelokální skoky

  • <signal.h>

    • funkce a konstanty pro zpracování signálů

  • <stdarg.h>

    • makra pro práci s funkcemi s proměnným počtem parametrů


Funkce podle hlavi kov ch soubor5

Funkce podle hlavičkových souborů

  • <stdio.h>

    • funkce pro práci s proudy / datovými proudy

  • <stdlib.h>

    • alokace paměti, operace s programem, převody znaků

  • <string.h>

    • funkce pro práci s řetězci

  • <time.h>

    • funkce času, počet tiků od startu procesu


Funkce podle hlavi kov ch soubor6

Funkce podle hlavičkových souborů

  • <valarray>

    • matematické funkce pro množiny prvků

  • <wchar.h>, <wctype.h>

    • nástroje pro práci s 16-bitovými znaky


Stl t dy

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, ...


P klad na t du valarray

Příklad na třídu valarray

#include <valarray.h>

#include <iostream.h>

using namespace std;

void printarray(ostream &s, valarray<int> &array)

{

for (int i = 0; i < array.size(); i++)

s << array[i] << " ";

s<<endl;

}

int main(int argc, char* argv[])

{

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};

valarray<int> array1(ibuf1,10);

valarray<int> array2(ibuf2,10);

printarray(cout, array1);

printarray(cout, array2);

valarray<int> sum = array1 + array2;

printarray(cout, sum);

getchar();

return 0;

}


P klad na t du queue

Příklad na třídu queue

int main(int argc, char* argv[])

{

queue<int> Q;

Q.push(8);

Q.push(7);

Q.push(6);

Q.push(2);

cout << "Pocet prvku ve fronte: " << Q.size() << endl;

cout << "Vybiram element : " << Q.front() << " z fronty." << endl;

Q.pop();

cout << "Pocet prvku ve fronte: " << Q.size() << endl;

getchar();

return 0;

}


P klad na t du string

Příklad na třídu string

int main(int argc, char* argv[])

{

string test;

while(test.empty() || test.size() <= 5)

{

cout << "Type a string between 5 and 100 characters long. " << endl;

cin >> test;

}

cout << "Changing the third character from "

<< test[2] << " to * " << endl;

test[2] = '*';

cout << "now its: " << test << endl << endl;

cout << "Identifying the middle: ";

test.insert(test.size() / 2, "(the middle is here!)");

cout << test << endl << endl;

cout << "I didn't like the word 'middle',so "

"instead, I'll say:" << endl;

test.replace(test.find("middle",0), 6, "center");

cout << test << endl;

cin >> test;

return 0;

}


P klad na t du complex

Příklad na třídu complex

int main(int argc, char* argv[])

{

complex<double> a(1.2, 3.4);

complex<double> b(-9.8, -7.6);

a += b;

a /= sin(b) * cos(a);

b *= log(a) + pow(b, a);

cout << "a = " << a << ", b = " << b << endl;

getchar();

return 0;

}


Zad n cvi en

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<cpx_double> array, string head)

    kde cpx_double je typ complex<double>

  • Za bonusový bod nahraďte funkci print přetíženým operátorem <<

  • Výstupem programu bude:


  • Login