Junior — Middle
Jakie ulepszenia zostały wprowadzone do języka C++ wraz z pojawieniem się standardu C++11?
sobes.tech AI
Odpowiedź od AI
Standard C++11 wprowadził wiele ulepszeń i nowych funkcji, w tym:
- Automatyczne wyprowadzanie typów (
auto) — upraszcza deklarację zmiennych. - Inteligentne wskaźniki (
std::unique_ptr,std::shared_ptr) — do bezpiecznego zarządzania pamięcią dynamiczną. - Wyrażenia lambda — pozwalają pisać anonimowe funkcje bezpośrednio w miejscu użycia.
- Wyrażenia stałe (
constexpr) — obliczenia na etapie kompilacji. - Pętle oparte na zakresach (
range-based for) — upraszczają iterację po elementach kolekcji. - Programowanie wielowątkowe — wprowadzenie standardowych wątków (
std::thread), mutexów i innych środków synchronizacji. - Semantyka przesunięcia i referencje rvalue — optymalizacja przekazywania zasobów.
- Typy o stałym rozmiarze (
<cstdint>) — dla bardziej precyzyjnej kontroli nad typami.
Przykład wyrażenia lambda:
#include <iostream>
#include <vector>
int main() {
std::vector<int> v = {1, 2, 3, 4, 5};
int suma = 0;
std::for_each(v.begin(), v.end(), [&suma](int n) { suma += n; });
std::cout << "Suma: " << suma << std::endl;
return 0;
}