如何查看复杂度为 O(1) 的字符串流对象中的最后一个字符
How to see the last character in a stringstream object with O(1) constant complexity?
我试图在将一些东西刷新到std::stringstream
对象上获得尾随换行符。现在我会尝试这样的事情:
const char* inputvalue = "My linen";
std::stringstream stream;
stream << std::string{inputvalue};
stream.seekp( -1, std::ios_base::end );
if( stream.peek() == 'n' ) {
stream << " ";
} else {
stream.seekp( 0, std::ios_base::end );
}
这是最有效的方法,即更少的CPU指令和时间吗?
作为旁注,除了放置空格字符以在不牺牲性能的情况下摆脱新行之外,我是否可以完全删除最后一个换行符?
在将东西添加到stringstream
之前,我正在获取const char*
并检查它是否有新行n
。如果是这样,我将其转换为char*
并以size-1
上的