我正在处理来自公寓(几个房间)的不同类型传感器(运动,开关等)的数据。字符串格式看起来像这样
日期;小时; unix_time;毫秒用户身份;数据类型;值
数据是从csv文件处理的。现在,我正在使用boost将其读入向量。详细格式ist
读入方法是:
vector<vector<string>> CSVReader::getData()
{
ifstream file(fileName);
vector<vector<string>> dataList;
string line = "";
// Iterate through each line and split the content using delimeter
while (getline(file, line))
{
vector<string> vec;
boost::algorithm::split(vec, line, boost::is_any_of(delimeter));
dataList.push_back(vec);
}
// Close the File
file.close();
return dataList;
}
我要开发的算法将检测人的正常行为的轮廓。对于这种通常的行为,将构建一个基于规则的引擎(首先是静态的,然后希望是动态的)。但是第一步将是数据的预处理。
出于我将大量使用数据的原因,我问自己是否应该转换正在处理的数据。我要实现几种方法:
由于要处理大量数据,我想以最有效的方式开始实施。现在是问题。
我什么时候应该使用字符串,什么时候应该使用转换为数值?
使用支持所需操作的类型。
例如,“ 2。一个时间间隔内相同传感器的平均数据”,您将需要+
和/
来获得平均值。对于包含数字的字符串,std::string
不支持该功能。每次要使用算术运算符时,都将字符串转换为数字非常耗时。
从您列出的内容来看,字符串为什么首先发挥作用并不清楚。即使是在屏幕上打印数字,也不必将数字转换为字符串(输出流可以为您完成)。如果出于任何原因将数字作为字符串获取,请在开始使用数字之前仅进行一次转换。