テストコードを書く上で"1.1 0.4 2.3"などの可変長のパラメータを持った文字列入力を扱いたかったので書きました。
// 長さ10まで
double *string_to_double_array(std::string input){
double *val = (double *)malloc(sizeof(double)*10);
std::istringstream stream(input);
int cnt = 0;
for(;;){
stream >> *val++; cnt++;
if(stream.fail()) break;
}
return val - cnt; // 先頭に返す
}
int main(){
double *params = string_to_double_array("1.1 0.4 2.3");
// params = {1.1, 0.4, 2.3}
return 0;
}
テストによってパラメータ数が変わるので、これのおかげでかなり便利になりました。