2011-12-24 346 views

回答

8
str.erase(
    std::unique(str.begin(), str.end()), 
    str.end()); 

这将工作的不仅仅是空间更多,但。例如,字符串“aaabbbccccdd”将变成“abcd”。那是你要的吗?如果你只是想减少的空间,以一个空间,你可以通过一个二元谓词作为第三个参数std::unique,像这样的:

bool BothAreSpaces(char lhs, char rhs) 
{ 
    return (lhs == ' ') && (rhs == ' '); 
} 
+0

优秀的标准算法使用! – 2011-12-24 16:11:18

+0

谢谢,我完全忘了std :: unique – 2011-12-24 16:16:07

相关问题