C++/Filozofia STL: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Janski (dyskusja | edycje)
Lethern (dyskusja | edycje)
poprawki, +tag source
Linia 1:
Biblioteka standardowa języka C++ jest jego częścią i należy do standardu. Uzupełnia sam język logicznymi strukturami czyniąc go bardziej użytecznym. STL (ang. Standard Template Library) jest chyba pierwszą rzeczą jaką trzeba sie nauczyć zaraz po samej nauce języka C++. STL jest pewną częścią biblioteki standardowej należącą do języka C++, a nie całą. Dlaczego warto używać STL? Żeby nie odkrywać koła na nowo mówiąc w skrócie, tworzyć kod przenośny między platformami i wiele innych przyczyn wynikających ze stopnia zaawansowania twojego programowania. W tym artykule postaram się opisać bibliotekę standardową wzorców dla początkujących i najwięcej uwagi poświęcić tym (z mojego punktu widzenia) częściom najbardziej użytecznym i wykorzystywanym do amatorskiego i nie tylko programowania.
Zanim zaczniemy poznawać poszczególne kategorie STL musimy poznać tak zwany generalny konspekt przygotowania jej do użycia. Najważniejszymi i niezbędnymi są: dołączanie odpowiednich plików nagłówkowych i korzystanie z przestrzeni nazw. Jeżeli chodzi o pliki nagłówkowe to używamy następującej składni:
<source lang="cpp">
 
#include <iostream>
#include <string>
#include <stdiovector>
// zamiast niepoprawnych:
#include <iostream.h>
#include <cstring> // zamiast <string.h>
#include <vector.h>
// aby użyć starej biblioteki z języka C, zapisując to w stylu C++, robimy to tak:
#include <iostream.h>
#include <stringcstdlib> // zamiast <stdlib.h>
#include <stdiocstring> // zamiast <string.h>
// natomiastprzedrostek jeżeli'c' chcemyoznacza używać starej biblioteki zbibliotekę języka C
</source>
// ale nie łamiąc nowego stylu to piszemy tak:
Teraz kwestia dotycząca przestrzeni nazw. Zawartość biblioteki standardowej została “włożona”"włożona" do przestrzeni nazw po to, aby używane tam nazwy, np. metod klas, nie zastrzegały sobie wyłączności na daną nazwę w obrębie całego programu. Przez to, albo dzięki temu musimy, albo możemy powiadomić kompilator o tym jakiej części chcemy używać. Składnia została przedstawiona poniżej:
#include <cstdlib> // zamiast <stdlib.h>
#include <cstring> // zamiast <string.h>
// przedrostek 'c' np. 'cstring' oznacza bibliotekę języka C
 
<source lang="cpp">
Teraz kwestia dotycząca przestrzeni nazw. Zawartość biblioteki standardowej została “włożona” do przestrzeni nazw po to aby używane tam nazwy np. metod klas nie zastrzegały sobie wyłączności na daną nazwę w obrębie całego programu. Przez to, albo dzięki temu musimy, albo możemy powiadomić kompilator o tym jakiej części chcemy używać. Składnia została przedstawiona poniżej:
// załączamy całą przestrzeń nazw:
 
using namespace std;
// załączamy całą przestrzeń nazw:
// lub: załączmy tylko wybrane elementy cout i endl:
using namespace std;
using std::cout;
using std::endl;
// załączmy tylko wybrane elementy cout i endl:
</source>
Oczywiście możemy nie używać dyrektywy <tt>using</tt>. iWówczas przed każdym użyciem elementu z biblioteki standardowej, zapowiadaćnp. zakresemfunkcji <tt>cout</tt>, dopisujemy z jakiej przestrzeni nazw, do którejpochodzi tadany należyelement:
using std::cout;
<source lang="cpp">
using std::endl;
std::cout << "Nowa linia i wymuszenie przepływu z bufora" << std::endl;
</source>
Oczywiście możemy nie używać dyrektywy using i przed każdym użyciem elementu z biblioteki standardowej zapowiadać zakresem przestrzeni nazw, do której ta należy:
 
std::cout << 3.4 << std::endl;
 
<noinclude>{{Nawigacja|C++|