Основные понятия шаблонов
Шаблоны позволяют создавать обобщённые функции и классы, которые могут работать с различными типами данных.
Определение шаблона класса
``cpp template <typename T> class MyClass { T data; public: void setData(T value) { data = value; } T getData() const { return data; } }; ``
Пример использования шаблона класса
``cpp MyClass<int> objInt; objInt.setData(10); std::cout << objInt.getData(); // выведет 10 ``
Определение шаблонной функции
``cpp template<typename T> T sum(T a, T b) { return a + b; } ``
Использование шаблонных функций
``cpp int result = sum(3, 5); // результат будет равен 8 double dresult = sum(3.5, 7.5); // результат будет равен 11 ``
Стандартная библиотека C++
Стандартная библиотека предоставляет множество полезных классов и функций, упрощающих разработку программного обеспечения.
Вектор (vector)
Вектор представляет собой динамический массив, который автоматически управляет своей памятью.
```cpp #include <vector>
std::vector<int> vec; vec.push_back(10); vec.push_back(20); for (auto i : vec) { std::cout << i << " "; } // выведет 10 20 ```
Контейнер map
Контейнер map хранит пары ключ-значение.
```cpp #include <map>
std::map<std::string, int> myMap; myMap["apple"] = 10; myMap["banana"] = 20; for (const auto& pair : myMap) { std::cout << pair.first << ": " << pair.second << "\n"; } // выведет apple: 10 banana: 20 ```
Пропуски для самопроверки