#include<iostream>#include<sstream>#include<istream>#include<fstream>#include<string.h>#include<math.h>#include<vector>#include<algorithm>#include<map>usingnamespace std;//necessary data structurestruct raw {
vector<double> data;
string name;};struct result {
double distance;
string name;};/*===============================================================
name:get_trainingset parameter:string address, int n,vector<raw>res
function:get the dataset from the file
===============================================================*/voidget_trainingset(ifstream &trainingfile,int n,vector<raw>vec){
while(!trainingfile.eof()){
string tempname;
vector<double> tempdata;//get a set of data and push them in vectordatafor(int i =0; i < n; i++){
string tempstr;getline(trainingfile, tempstr,',');
istringstream ss(tempstr);double tempnum;
ss >> tempnum;
tempdata.push_back(tempnum);}getline(trainingfile