unordered_map.cout
时间: 2023-11-04 18:06:47 浏览: 98
unordered_map是C++标准库中的一个容器,它提供了一种将键值对存储在哈希表中的方式。unordered_map的模板定义如下:
template < class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>, class Alloc = allocator< pair<const Key,T> > > class unordered_map;
unordered_map可以通过键来访问和修改元素,而不是像数组那样通过索引。它的底层实现使用了哈希表,因此它的查找、插入和删除操作的平均时间复杂度是常数级别的(O(1))。
关于unordered_map的常用操作,包括:
1. 插入元素:使用insert函数或者emplace函数。
2. 访问元素:使用at函数或者[]操作符。
3. 删除元素:使用erase函数。
4. 查找元素:使用find函数,返回一个指向该元素的迭代器。
5. 获取元素数量:使用size函数。
相关问题
unordered_map map.find
`unordered_map.end()`是C++中`unordered_map`容器的成员函数,用于返回一个迭代器,指向容器的尾部之后的位置。换句话说,它指向的是容器中最后一个元素之后的位置。在使用迭代器遍历容器时,通常会将`unordered_map.end()`作为循环的终止条件。
例子代码:
```cpp
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<int, std::string> myMap;
myMap[1] = "Apple";
myMap[2] = "Banana";
myMap[3] = "Orange";
// 遍历打印unordered_map中的所有元素
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
std::cout << it->first << ": " << it->second << std::endl;
}
return 0;
}
```
输出:
```
1: Apple
2: Banana
3: Orange
```
在上面的示例中,`it`是一个迭代器,它从`myMap.begin()`开始遍历到`myMap.end()`之前的位置,以
unordered_map.emplace
unordered_map的emplace方法用于向unordered_map中插入一个元素。它接受一个可变参数模板参数列表,用于构造键值对的键和值。如果unordered_map中已经存在相同的关键字,则插入操作会失败。
以下是一个使用emplace方法向unordered_map插入元素的示例代码:
```cpp
#include <unordered_map>
#include <iostream>
int main() {
std::unordered_map<std::string, int> my_map;
// 使用emplace方法插入元素
my_map.emplace("foo", 42);
my_map.emplace("bar", 99);
// 输出元素
std::cout << "foo: " << my_map["foo"] << std::endl;
std::cout << "bar: " << my_map["bar"] << std::endl;
return 0;
}
```
运行以上代码,输出结果为:
```
foo: 42
bar: 99
```
这段代码使用emplace方法向unordered_map中插入了两个键值对,然后通过键访问对应的值并输出。
阅读全文