私が何かを見逃していないか、メカニズムを誤解していない限り(非常に可能性が高い)、「1」の重複はこのベクトルに存在しないはずですか?
chunks.erase( std::unique ( chunks.begin(), chunks.end(),
[]( std::string &s1, std::string &s2 ){
return ( s1.compare(s2) == 0 ? true : false );}),
chunks.end() );
上記を実行する前に:
1 l:1
1+ l:2
1+1 l:3
1+1= l:4
+ l:1
+1 l:2
+1= l:3
1 l:1
1= l:2
= l:1
上記のコードを実行した後:
1 l:1
1+ l:2
1+1 l:3
1+1= l:4
+ l:1
+1 l:2
+1= l:3
1 l:1
1= l:2
= l:1
述語なしで試しました(同一の std::strings が削除されると仮定します)。何らかの理由で、「もの」は同一として識別されますか? 私はそれらの長さを調べました (空白が接頭辞または接尾辞としてスタックされていると仮定します) が、それらは同じ長さです。
何か不足していますか?