给#include <iostream>#include <string>#include <unordered_set>using namespace std;string removeDuplicates(string s) { unordered_set<char> seen; string result = ""; for (char c : s) { if (seen.count(c) == 0) { seen.insert(c); result += c; } } return result;}int main() { string input = "hello world"; string output = removeDuplicates(input); cout << output << endl; return 0;}封装
时间: 2023-06-17 18:05:42 浏览: 122
以下是封装后的代码:
```
#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;
class DuplicatesRemover {
public:
DuplicatesRemover() {}
~DuplicatesRemover() {}
string removeDuplicates(string s) {
unordered_set<char> seen;
string result = "";
for (char c : s) {
if (seen.count(c) == 0) {
seen.insert(c);
result += c;
}
}
return result;
}
};
int main() {
string input = "hello world";
DuplicatesRemover remover;
string output = remover.removeDuplicates(input);
cout << output << endl;
return 0;
}
```
在这个封装的代码中,我们创建了一个 `DuplicatesRemover` 类,其中包含了一个公有的 `removeDuplicates()` 函数,用于去除字符串中的重复字符。
这个类的构造函数和析构函数都是空的,因为在这个例子中,我们没有需要初始化或清理的数据。
在 `removeDuplicates()` 函数中,我们使用了一个无序集合 `seen` 来存储已经出现过的字符。对于输入字符串中的每个字符,我们首先检查它是否已经在 `seen` 集合中出现过。如果没有,我们将其加入到 `seen` 集合中,并将其加入到结果字符串 `result` 中。最后,我们返回 `result` 字符串。
在 `main()` 函数中,我们创建了一个 `DuplicatesRemover` 对象 `remover`,并使用它的 `removeDuplicates()` 函数去除了字符串中的重复字符。最后,我们将结果输出到控制台。
阅读全文