// т.к. vector это шаблон, напишем шаблонную функцию вычисления максимума для вектора
template <typename T>
bool Max(std::vector<T> &v, T &result){
if(v.empty()) return false;
result = *v.begin();
for(std::vector<T>::iterator idx = v.begin(); idx != v.end(); idx++)
if(result > *idx) result = *idx;
return true;
};
void main(void){
// Сделаем два вектора разного типа - int и double и заполним их...
std::vector<int> VecInt;
std::vector<double> VecDbl;
VecInt.push_back(1);
VecInt.push_back(5);
VecInt.push_back(6);
VecInt.push_back(7);
VecDbl.push_back(15.5);
VecDbl.push_back(55.3);
VecDbl.push_back(65.3);
VecDbl.push_back(75.7);
VecDbl.push_back(45.5);
VecDbl.push_back(85.3);
VecDbl.push_back(65.3);
VecDbl.push_back(75.7);
// Переменные для результатов
int MaxInt;
double MaxDbl;
// Применим шаблонную функцию к вектору...
Max<int>(VecInt,MaxInt);
Max<double>(VecDbl,MaxDbl);
// Вывод результата
std::cout <<"Max of int = " << MaxInt << std::endl;
std::cout <<"Max of double = " << MaxDbl << std::endl;
return 0;
};