unordered_map中find的时间复杂程度
时间: 2023-07-23 15:45:46 浏览: 199
unordered_map中的find操作的时间复杂度为O(1),即常数时间。因为unordered_map使用哈希表来存储键值对,所以查找一个键值对的时间几乎不会受到unordered_map中元素数量的影响。但是,在最坏情况下,如果哈希函数不好或者哈希冲突严重,查找操作的时间复杂度可能会达到O(n),其中n是unordered_map中元素的数量。
相关问题
unordered_map中find函数
unordered_map中的find函数是用来查找指定键值是否存在于unordered_map中的函数。其函数原型为:
```c++
iterator find(const key_type& key);
const_iterator find(const key_type& key) const;
```
其中,第一个函数返回一个迭代器,指向键值为key的元素;如果key不存在,则返回unordered_map::end()。第二个函数与第一个函数类似,只不过返回的是const_iterator类型的迭代器。
unordered_map.find
unordered_map.find是C++标准库中的一个函数,用于在无序映射容器(unordered_map)中查找给定的键值。它接受一个键作为参数,并返回一个迭代器,指向该键在容器中的位置。如果找到了该键,则迭代器指向该键值对;如果未找到,则迭代器指向容器末尾(即end())。
使用示例:
```cpp
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<int, std::string> map = {
{1, "one"},
{2, "two"},
{3, "three"}
};
// 查找键为2的元素
auto it = map.find(2);
if (it != map.end()) {
std::cout << "Found: " << it->second << std::endl; } else {
std::cout << "Not found." << std::endl;
}
return 0;
}
```
输出结果:
```
Found: two
```
在上述示例中,我们创建了一个无序映射容器map,并使用find函数查找键为2的元素。如果找到了,则输出对应的值;否则,输出"Not found."。注意,使用find函数进行查找的时间复杂度为O(1)。
阅读全文