При выполнении следующего кода я получаю вышеупомянутую ошибку при выполнении изменения функции. Я нигде не использовал разыменование и не использовал void*. Сначала я подумал, что это из-за (двойного *) malloc(..), но даже при использовании статического выделения памяти проблема все еще сохраняется. Кроме того, компилятор говорит, что max_element не является членом std:: или "ошибка: 'max_element' не был объявлен в этой области"
#include <iostream>
#include <cmath>
#include <tgmath.h>
#include <vector>
#include <stdio.h>
using namespace std;
struct Exchange{
int nHalf ;
int nThird ;
int nFourht ;
int amDollars[3] ;
};
void change (double n, Exchange& a) ;
// Main function for the program
int main( )
{
int i = 0 ;
vector <int> n ;
n.reserve(10) ;
vector<Exchange>coin ;
coin.reserve(10) ;
// n = (double *) malloc(sizeof(double)) ;
do{
cin >> n[i] ;
change (n[i], coin[i]) ;
coin[i].amDollars[0] =
coin[i].nHalf + coin[i].nThird + coin[i].nFourht ;
coin[i].amDollars[1] = n[i] ;
coin[i].amDollars[2] = 0 ;
cout << *max_element(&coin[i].amDollars[0], &coin[i].amDollars[2]) << endl ;
i++ ;
}while (i < 10) ;
return 0;
}
void change (double n, Exchange& a) {
a.nHalf = trunc(n/2) ;
a.nThird = trunc(n/3) ;
a.nFourht = trunc(n/4) ;
}
max_element
объявлено в этой области, если только оно не находится в одном из заголовков. - person Daniel Kamil Kozar   schedule 08.03.2015<algorithm>
, чтобы получить его. :) - person Daniel Kamil Kozar   schedule 08.03.2015