举个例子使用unordered 、map
时间: 2023-04-01 17:01:07 浏览: 62
可以使用unordered_map来实现哈希表,它可以快速地进行查找、插入和删除操作。例如,我们可以使用unordered_map来统计一个字符串中每个字符出现的次数:
```
#include <iostream>
#include <unordered_map>
#include <string>
using namespace std;
int main()
{
string s = "hello world";
unordered_map<char, int> mp;
for (char c : s) {
mp[c]++;
}
for (auto p : mp) {
cout << p.first << ": " << p.second << endl;
}
return ;
}
```
这段代码会输出每个字符出现的次数,例如:
```
h: 1
e: 1
l: 3
o: 2
: 1
w: 1
r: 1
d: 1
```
相关问题
举个例子使用map比unordered map好
使用map比unordered map好的一个例子是需要按照键的顺序进行遍历时。因为map内部是按照键的大小进行排序的,所以遍历时可以保证按照键的顺序进行。而unordered map则是无序的,遍历时无法保证顺序。当然,在其他情况下,unordered map也可能比map更适合使用,具体要根据具体情况来决定。
unordered_map 例子
unordered_map是C++ STL中的一个哈希表容器,可以使用键值对存储数据。举例来说,我们可以使用unordered_map来存储学生的姓名和年龄。
首先,我们需要包含头文件<unordered_map>。接着,我们可以使用unordered_map类型的对象来定义容器,例如:
```
unordered_map<string, int> student_map;
```
上述代码定义了一个unordered_map容器对象,其中键值为string类型,存储学生姓名;值为int类型,存储学生年龄。我们可以使用insert函数向容器中添加键值对,例如:
```
student_map.insert({"Alice", 20});
student_map.insert({"Bob", 21});
```
上述代码向容器中添加了两个键值对,分别是{"Alice", 20}和{"Bob", 21}。我们可以使用find函数查找指定的键对应的值,例如:
```
auto it = student_map.find("Alice");
if (it != student_map.end()) {
cout << it->second << endl; // 输出20
}
```
上述代码查找键为"Alice"的键值对,并输出其对应的值20。
除了使用insert函数添加键值对之外,我们还可以使用下标操作符[]来添加和修改键值对。例如:
```
student_map["Charlie"] = 19;
student_map["Alice"]++;
```
上述代码分别使用下标操作符向容器中添加了一个键值对{"Charlie", 19},以及将键为"Alice"的值增加1。
unordered_map的使用方法比较灵活,可以适用于多种场景。需要注意的是,在多线程环境下使用unordered_map时需要进行线程同步。