2011-12-24 26 views

答えて

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

これは、しかし、単にスペースよりも上で動作します。たとえば、文字列 "aaabbbcccddd"は "abcd"になります。それはあなたが欲しいものですか?あなただけの1つのスペースにスペースを削減したい場合は、同様に、std::uniqueに3番目の引数としてバイナリ述語を渡すことができ、この1:

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

標準アルゴリズムの優れた使用! –

+0

ありがとう、私はstd :: uniqueを完全に忘れてしまった –

関連する問題