我试图排除字符串到函数中对象的转换。这是涉及的功能:
std::vector<std::pair<value_type, size_t>> read_file(const std::string path, benchmark::State& state) {
std::string kmer;
std::vector<std::pair<value_type, size_t>> data;
std::ifstream file(path);
while (std::getline(file, kmer)) {
state.PauseTiming();
kmer_t tmp(kmer);
state.ResumeTiming();
data.push_back(std::make_pair(tmp.value, tmp.index));
}
return data;
}
函数作用域是读取文件并逐行转换为对象。结果对象被插入到一对向量中。我在我的项目中包含了google benchmark
计算使用了多少时间和内存的库。我想从总数中排除转换。我就像文档中所说的那样实现了该功能,但是结果时间比没有计时器管理的正常计算要高得多。
我还发现了这个旧但相关的未解决问题,但我无法解决我的问题。我该如何解决这个问题,或者有任何解决这个问题的方法?