#include <sstream>
#include "cost_func.h"
-cost_func::cost_func(const char *param)
+cost_func::cost_func(const char* param)
{
int len = strlen(param);
char tmpbuf[len + 1];
- char *tmp = tmpbuf;
+ char* tmp = tmpbuf;
memcpy(tmp, param, len + 1);
degree = std::count(tmp, tmp + len, ',');
factor = new double[degree + 1];
for (int i = degree ; i > 0 ; i--) {
- char *next = strchr(tmp, ',');
+ char* next = strchr(tmp, ',');
*next++ = '\0';
- factor[i] = atof(tmp);
+ std::istringstream(tmp) >> factor[i];
tmp = next;
}
- factor[0] = atof(tmp);
+ std::istringstream(tmp) >> factor[0];
}
cost_func::~cost_func()