Так как STL представляет собой набор шаблонных классов C ++, то знание того как устроены эти классы является желательным для работы c STL. В C ++ добавлено два новых ключевых слова для поддержки шаблонов: «template» и «typename». Используя их можно написать универсальную функцию, которая будет во время компиляции раскрываться в нужные типы. Например, шаблонная функция получения максимума из двух значений:
template <typename T> T myMax(T x, T y) { return (x > y)? x: y; } int main() { cout << myMax<int>(3, 7) << endl; cout << myMax<double>(3.0, 7.0) << endl; cout << myMax<char>('g', 'e') << endl; return 0; }
#include <iostream> using namespace std;
int main() { int n; cin >> n; int *a = new int[n]; for (int i = 0; i < n; i++) cin >> a[i]; bubbleSort(a, n); for (int i = 0; i < n; i++) cout << a[i] << " "; cout << endl; return 0; }
1000 ms 256 Mb Правила оформления программ и список ошибок при автоматической проверке задач