【发布时间】:2020-08-17 05:30:00
【问题描述】:
两者之间的性能差异是什么:
string s="";
//stk is std::stack<char>
while(!stk.empty()){
s+=stk.top();
stk.pop();
}
reverse(s.begin(),s.end());
和
while(!stk.empty()){
s=stk.top()+s;
stk.pop();
}
为什么上面的效率更高?如有需要可以举个例子。
【问题讨论】:
-
当您测量时,性能差异是什么?
-
我正在解决一个关于 leetcode 的问题。在使用第二种方法时,我得到了一个 TLE。当我使用第一个时,它已解决。编辑:它在逻辑上是正确的,仅在大输入时失败。
-
这也可能是因为这两个东西没有给出相同的结果?
-
这些代码是不同的。他们不做同样的事情。你可能想抹去这个问题,因为在这一点上,考虑到这两段代码做的事情完全不同,这没有多大意义。
-
实际上它在一个循环中,我正在从堆栈中获取我的字符。在我的循环结束时,我反转了字符串。所以,逻辑上是一样的。字符串从空白开始
标签: c++ string performance stl