对不起,这可能措辞得更好.解析文本文件的函数非常慢,因为C的流读取非常慢(在C#版本中大约需要6分钟而不是大约6秒).
将大规模数组初始化文件作为合法解决方案吗?它似乎不优雅,但如果它更快,那么我认为它更好?
这是文件读取代码:
//parses the text path vector into the engine voID Level::PopulatePathVectors(string pathtable) { // Read the file line by line. ifstream myfile(pathtable); for (unsigned int i = 0; i < nodes.size(); i++) { pathLookupVectors.push_back(vector<vector<int>>()); for (unsigned int j = 0; j < nodes.size(); j++) { string line; if (getline(myfile,line)) //enter if a line is read successfully { stringstream ss(line); istream_iterator<int> begin(ss),end; pathLookupVectors[i].push_back(vector<int>(begin,end)); } } } myfile.close(); }
来自文本文件的样本行(其中有大约五十万行类似格式但长度不同.
0 5 3 12 65 87 n解决方法 6分钟vs 6秒!!一定是你的C代码有问题.在您恢复到帖子中提到的极端“优化”之前,使用好的旧方法对其进行优化.
还要知道从文件读取将允许您更改矢量内容而不更改源代码.如果按照你提到的方式进行,你将不得不重新编码,再次编译n链接.
总结以上是内存溢出为你收集整理的c – 巨大的.cpp文件比从文本文件中读取更好吗?全部内容,希望文章能够帮你解决c – 巨大的.cpp文件比从文本文件中读取更好吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)