您可以将erase-remove惯用法与重复字符的集合保持跟踪结合使用:
std::set<char> dupes;
str.erase(
std::remove_if(
str.begin(), str.end(),
[&](char c) { return not dupes.insert(c).second; }),
str.end());
Run Code Online (Sandbox Code Playgroud)
这也使用了返回值std::set::insert是一对的事实,其第二个元素是bool指示插入是否发生的对.
| 归档时间: |
|
| 查看次数: |
253 次 |
| 最近记录: |