我向您展示执行相同作业的C#和C++代码:读取由"|"分隔的相同文本文件,并使用"#"分隔文本保存.
当我执行C++程序时,经过的时间是169秒.
更新1:由于Seth(汇编为:cl/EHsc/Ox/Ob2/Oi)和GWW用于改变循环外字符串s的位置,经过的时间减少到53秒.我也更新了代码.
更新2:你有任何其他建议来加强C++代码吗?
当我执行C#程序时,经过的时间是34秒!
问题是,与C#相比,如何提高C++的速度?
C++程序:
int main ()
{
Timer t;
cout << t.ShowStart() << endl;
ifstream input("in.txt");
ofstream output("out.txt", ios::out);
char const row_delim = '\n';
char const field_delim = '|';
string s1, s2;
while (input)
{
if (!getline( input, s1, row_delim ))
break;
istringstream iss(s1);
while (iss)
{
if (!getline(iss, s2, field_delim ))
break;
output << s2 << "#";
}
output << "\n";
}
t.Stop();
cout << t.ShowEnd() << endl;
cout << "Executed in: " << t.ElapsedSeconds() …Run Code Online (Sandbox Code Playgroud)