c++ 用顺序表去除字符串中的重复字符
时间: 2024-10-17 18:03:24 浏览: 63
在C++中,你可以使用顺序表(如数组或动态数组)来去除字符串中的重复字符。这里我们通常会创建一个辅助数组或者哈希集合来跟踪已经遇到过的字符。以下是使用`std::vector<char>`作为顺序表的一个基本示例:
```cpp
#include <iostream>
#include <vector>
#include <unordered_set>
std::string removeDuplicates(const std::string& str) {
std::vector<char> result;
std::unordered_set<char> seen;
for (char c : str) {
if (seen.find(c) == seen.end()) {
// 如果字符未见过,添加到结果和集合中
result.push_back(c);
seen.insert(c);
}
}
// 返回去除了重复的字符串
return std::string(result.begin(), result.end());
}
int main() {
std::string input = "hello world";
std::cout << "Original string: " << input << "\n";
std::string output = removeDuplicates(input);
std::cout << "String without duplicates: " << output << "\n";
return 0;
}
```
在这个例子中,我们遍历输入字符串的每个字符,如果该字符不在`seen`集合中,就将其添加到`result`中,并将字符加入集合。最终返回的结果就是去重后的字符串。
阅读全文