lab26.cpp: В функции 'int meanUsingIterators (const std :: vector &)':
lab26.cpp: 35: 13: ошибка: нет соответствия для оператора / (типы операндов 'double' и 'std :: vector :: const_iterator {aka __gnu_cxx :: __ normal_iterator>} ')
mean = sum / end;
lab26.cpp: в функции' int meanUsingPointers (const std :: vector &) ':
lab26.cpp: 51: 13: ошибка: недопустимые операнды типов' double 'и' std :: vector :: const_pointer {aka const int *} 'для двоичного оператора' /.
среднее = сумма / конец;
================================================================================
#include <vector>
#include <cmath>
using namespace std;
int meanUsingIndexing(const vector<int>& v)
{
vector<int>::size_type i, end = v.size();
double sum = 0;
double mean;
for(i = 0; i < end; i++)
{
sum += v.at(i); // or sum += v[i]
}
mean = sum / end;
return round(mean);
}
int meanUsingIterators(const vector<int>& v)
{
vector<int>::const_iterator i, end = v.cend();
double sum = 0;
double mean;
for(i = v.cbegin(); i < end; i++)
{
sum += *i;
}
mean = sum / end;
return round(mean);
}
int meanUsingPointers(const vector<int>& v)
{
vector<int>::const_pointer i, end = v.data() + v.size();
double sum = 0;
double mean;
for(i = v.data(); i < end; i++)
{
sum += *i;
}
mean = sum / end;
return round(mean);
}