Omówienie standardowej biblioteki języka C++ (STL)
Wszystkie jednostki biblioteki języka C++ są zadeklarowane lub zdefiniowane w co najmniej jednym nagłówku standardowym. Ta implementacja obejmuje dwa inne nagłówki <hash_map>
i <hash_set>
, które nie są wymagane przez standard C++. Aby uzyskać pełną listę nagłówków, które obsługuje ta implementacja, zobacz Dokumentacja plików nagłówków.
Standard C++ definiuje dwa rodzaje zgodnych bibliotek:
- Hostowana implementacja, która obsługuje wszystkie wymagane nagłówki biblioteki standardowej opisane w standardzie ISO języka C++.
- Implementacja wolna, która wymaga tylko podzbioru nagłówków biblioteki standardowej. Wymagany podzbiór to:
Podzestaw nagłówka wolnostojącego | ||
---|---|---|
<atomic> (deklarowanie co najmniej atomic_signed_lock_free i atomic_unsigned_lock_free ) |
<cstdint> |
<ranges> |
<bit> |
<cstdlib> (deklarowanie co najmniej abort , , at_quick_exit atexit , exit , quick_exit ) |
<ratio> |
<cfloat> |
<exception> |
<tuple> |
<climits> |
<functional> |
<typeinfo> |
<compare> |
<initializer_list> |
<source_location> |
<concepts> |
<iterator> |
<type_traits> |
<coroutine> |
<limits> |
<utility> |
<cstdarg> |
<memory> |
<version> |
<cstddef> |
<new> |
Następujące nagłówki są przestarzałe od języka C++11: <ciso646>
, <cstdalign>
i <cstdbool>
.
Inne różnice między implementacjami wolnymi i hostowanymi to:
- Hostowane implementacje wymagają funkcji globalnej o nazwie
main
. Implementacja wolnostojąca może definiować własne funkcje uruchamiania i kończenia. - Implementacje hostowane muszą obsługiwać więcej niż jeden wątek uruchomiony w tym samym czasie. Implementatory implementacji wolnostojących decydują, czy ich biblioteka obsługuje wątki współbieżne.
Standardowa biblioteka języka Microsoft C++ spełnia zarówno wymagania wolnostojące, jak i hostowane.
Nagłówki biblioteki języka C++ mają dwie szersze podziały:
Konwencje referencyjne biblioteki standardowej (STL) języka C++.
Ta sekcja zawiera następujące sekcje:
Aby uzyskać więcej informacji na temat bibliotek czasu wykonywania języka Visual C++, zobacz Funkcje biblioteki CRT.
Uwaga
Implementacja standardowej biblioteki C++ firmy Microsoft jest często nazywana biblioteką szablonów STL lub Standard. Mimo że biblioteka Standardowa języka C++ jest oficjalną nazwą biblioteki zdefiniowaną w standardzie ISO 14882, ze względu na popularne użycie biblioteki "STL" i "Standardowej biblioteki szablonów" w wyszukiwarkach, od czasu do czasu używamy tych nazw, aby ułatwić znalezienie naszej dokumentacji. Z perspektywy historycznej "STL" pierwotnie odniósł się do standardowej biblioteki szablonów napisanej przez Alexandra Stepanova. Części tej biblioteki zostały ustandaryzowane w standardowej bibliotece języka C++ wraz z biblioteką środowiska uruchomieniowego ISO C, częściami biblioteki Boost i innymi funkcjami. Czasami "STL" jest również używany do odwoływania się do kontenerów i algorytmów części standardowej biblioteki języka C++ dostosowanej z biblioteki STL Stepanov. W tej dokumentacji biblioteka szablonów standardowych (STL) odnosi się do standardowej biblioteki języka C++ jako całości.