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

Z Wikibooks, biblioteki wolnych podręczników.
< C++
Usunięta treść Dodana treść
Lethern (dyskusja | edycje)
mNie podano opisu zmian
biblioteki C++ zastępujące biblioteki dla C
Linia 16: Linia 16:
// przedrostek 'c' oznacza bibliotekę języka C
// przedrostek 'c' oznacza bibliotekę języka C
// warto takich bibliotek nie używać
// C++ ma ich nowsze odpowiedniki (mają inną składnię)
#include <limits> //zamiast #include <limits.h>
#include <string> //zamiast #include <string.h>
#include <iostream> //zamiast #include <stdio.h>
#include <fstream> //dopełnienie iostream o obsługę plików
</source>
</source>
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, możemy powiadomić kompilator o tym jakiej części chcemy używać. Składnia została przedstawiona poniżej:
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, możemy powiadomić kompilator o tym jakiej części chcemy używać. Składnia została przedstawiona poniżej:
Linia 33: Linia 39:


<noinclude>{{Nawigacja|C++|
<noinclude>{{Nawigacja|C++|
[[C++:Wskaźniki do elementów składowych|Wskaźniki do elementów składowych]]|
[[C++/Wskaźniki do elementów składowych|Wskaźniki do elementów składowych]]|
[[C++:String|String]]|
[[C++/String|String]]|
}}</noinclude>
}}</noinclude>

Wersja z 13:19, 13 paź 2011

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:

#include <iostream>
#include <string>
#include <vector>
 
// zamiast niepoprawnych:
#include <iostream.h>
#include <string.h>
#include <vector.h>
 
// aby użyć starej biblioteki z języka C, zapisując to w stylu C++, robimy to tak:
#include <cstdlib>   // zamiast <stdlib.h>
#include <cstring>   // zamiast <string.h>
 
// przedrostek 'c' oznacza bibliotekę języka C
// warto takich bibliotek nie używać
// C++ ma ich nowsze odpowiedniki (mają inną składnię)
#include <limits> //zamiast #include <limits.h>
#include <string> //zamiast #include <string.h>
#include <iostream> //zamiast #include <stdio.h>
#include <fstream> //dopełnienie iostream o obsługę plików

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, 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;
 
// lub: załączmy tylko wybrane elementy cout i endl:
using std::cout;
using std::endl;

Oczywiście możemy nie używać dyrektywy using. Wówczas przed każdym użyciem elementu z biblioteki standardowej, np. obiektu cout, dopisujemy z jakiej przestrzeni nazw pochodzi dany element:

std::cout << "Nowa linia i wymuszenie przepływu z bufora" << std::endl;