str.erase( std::unique(str.begin(), str.end()), str.end()); 这不仅适用于空格,对于字符串 "aaabbbcccddd",也会将其转换为 "abcd"。这是您想要的吗?如果您只想将多个空格缩减为一个空格,您可以将二元谓词作为第三个参数传递给 std::unique,像这样:bool BothAreSpaces(char lhs, char rhs) { return (lhs == ' ') && (rhs == ' '); }