Нет необходимости изобретать собственную функцию, которая ищет максимум. Вы можете использовать стандартные функции.
Вот и вы.
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
int main()
{
std::vector<double> freq = { 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07 };
std::vector<double> V = { 0, 0, 0, 0, 65.25, 0,6 };
auto it = std::max_element( std::begin( V ), std::end( V ) );
std::cout << *it << " -> "
<< *std::next( std::begin( freq ), std::distance( std::begin( V ), it ) )
<< '\n';
return 0;
}
Выход программы:
65.25 -> 0.05
Если вы используете свою функцию, вам следует изменить ее следующим образом. как показано в демонстрационной программе ниже.
#include <iostream>
#include <vector>
auto maxAt( const std::vector<double> &V )
{
std::vector<double>::size_type max = 0;
for ( std::vector<double>::size_type i = 1; i < v.size(); i++ )
{
if ( V[max] < V[i] ) max = i;
}
return max;
}
int main()
{
std::vector<double> freq = { 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07 };
std::vector<double> V = { 0, 0, 0, 0, 65.25, 0,6 };
auto pos = maxAt( V );
std::cout << V[pos] << " -> "
<< *freq[pos]
<< '\n';
return 0;
}
Вывод программы такой же, как показано выше
65.25 -> 0.05