unordered_map 实现字符串数组查重
时间: 2024-01-29 08:10:34 浏览: 77
unordered_map可以用于实现字符串数组的查重。下面是一个示例代码:
```cpp
#include <iostream>
#include <unordered_map>
#include <vector>
#include <string>
int main() {
std::vector<std::string> strVec = {"apple", "banana", "orange", "apple", "grape", "banana"};
std::unordered_map<std::string, int> hashMap;
int n = 1;
for (const std::string& str : strVec) {
auto it = hashMap.find(str);
if (it != hashMap.end()) {
std::cout << str << "是第" << it->second << "个重复的数据" << std::endl;
++(it->second);
} else {
hashMap[str] = n;
++n;
}
}
return 0;
}
```
这段代码首先定义了一个字符串数组`strVec`,其中包含了一些重复的字符串。然后,创建了一个`unordered_map`对象`hashMap`,用于记录字符串的重复次数。接下来,遍历字符串数组,对于每个字符串,通过在`hashMap`中查找是否存在该字符串的键,如果存在,则输出该字符串是第几个重复的数据,并更新重复次数;如果不存在,则将该字符串作为键插入到`hashMap`中,并将重复次数初始化为1。
运行以上代码,输出结果如下:
```
apple是第1个重复的数据
banana是第1个重复的数据
```
阅读全文