除非我遗漏了什么或误解了机制(很可能)这个向量中不应该存在“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)。出于某种原因,“那些”被识别为相同?我查看了它们的长度(假设空格被卡在前缀或后缀中),但它们的长度相同。
我错过了什么吗?