Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
ryczny,któryjestzgodnyzestandardamiiodrazugotowydowykorzystania.
Trzemaznaczącymikomponentamistdlibkontenery,iteratoryialgorytmy.
Kontenerystrukturamidanych,któreprzechowująserieobiektów.Dzia-
łaniekontenerówzostałodobrzeprzetestowane,onebezpiecznewużyt-
kowaniui(zazwyczaj)conajmniejtakwydajnejakkod,którymusiałbyś
samodzielnienapisać.Oznaczato,żestworzeniewłasnejwersjitychkontene-
rówwymagałobydużegowysiłku,auzyskanywynikniebyłbylepszyodtego,
cojużmamydostępnewbibliotecestdlib.Konteneryzostałypodzielonena
dwiekategorie:kontenerysekwencyjneikonteneryasocjacyjne.Kontenerysekwen-
cyjnekoncepcyjniepodobnedotabliczapewniajądostępdociąguele-
mentów.Konteneryasocjacyjnezawierająparyklucz/wartość,więcelementy
mogąbyćwyszukiwanewedługklucza.
Algorytmybibliotekistdlibfunkcjamiogólnegoprzeznaczeniaisłużądo
wykonywaniatypowychzadańprogramistycznych,takichjakzliczanie,wy-
szukiwanie,sortowanieiprzekształcanie.Podobniejakkontenery,wyjątko-
wowysokiejjakościimająszerokiezastosowanie.Użytkownicybardzorzadko
powinniwdrażaćwłasnąwersjędanegoalgorytmu,ponieważużyciebiblioteki
stdlibznaczniezwiększawydajnośćprogramisty,bezpieczeństwokoduijego
czytelność.
Iteratoryelementemłączącymkonteneryzalgorytmami.Jeśliaplika-
cjawykorzystujealgorytmybibliotekistdlib,częstozdarzasię,żedane,które
chceszprzetwarzać,znajdująsięwkontenerze.Konteneryudostępniająite-
ratoromjednolityinterfejs,aalgorytmywykorzystująiteratory,dziękiczemu
programiści(włącznieztymi,którzyimplementująbibliotekęstdlib)niemu-
szątworzyćniestandardowegoalgorytmudlakażdegotypukontenera.
Nalistingu19pokazano,wjakisposóbmożnaposortowaćkontener
zwartościamizużyciemkilkuwierszykodu.
#include<vector>
#include<algorithm>
#include<iostream>
intmain(){
std::vector<int>x{0,1,8,13,5,2,3};
x[0]:21;
x.push–back(1);3
std::sort(x.begin(),x.end());4
std::cout<<"Printing"<<x.size()<<"Fibonaccinumbers.\n";5
for(autonumber:x){
std::cout<<number<<std::endl;
}
}
Listing19.Sortowaniekontenerazwartościamizapomocąbibliotekistdlib
Wtlewykonywanychjestsporoobliczeń,alesamkodjestzwartyieks-
presywny.Najpierwinicjalizujeszkontenerstd::vector.Wektorytotablice
odynamicznychrozmiarach,zdefiniowanewbibliotecestdlib.Nawiasyinicja-
lizujące({0,1,
...})umożliwiajązdefiniowaniewartościelementówwwek-
torzex.Używającnawiasówkwadratowych([])iwartościindeksu,możesz,
lWstępdlaprogramistówC