c++ map快速查找
时间: 2023-11-12 07:07:17 浏览: 38
c++中的map是一种关联容器,用于存储键-值对。它内部使用红黑树实现,可以实现快速的查找和插入操作。在map中,每个键都是唯一的,而值可以重复。使用map的find()函数可以快速查找指定键的值。如果找到了该键,find()函数会返回指向该键值对的迭代器,否则返回指向map末尾的迭代器。通过迭代器可以访问键和值,例如(*iter).first可以访问键,(*iter).second可以访问值。下面是一个使用map快速查找的示例代码:
#include <map>
#include <string>
#include <iostream>
using namespace std;
int main(){
map<int,string> mapStudent;
mapStudent = "student_one";
mapStudent = "student_two";
mapStudent = "student_three";
map<int, string>::iterator iter = mapStudent.find(1);
if(iter != mapStudent.end()){
cout<<"Found, the value is "<<iter->second<<endl;
}else{
cout<<"Do not found"<<endl;
}
return 0;
}
相关问题
unordered_map 快速查找
C++中map和unordered_map都是STL中的容器,用于存储键值对。但是它们有一些区别。
map是基于红黑树实现的,因此它有一些额外的性能保证,例如查找、插入和删除的时间复杂度都是log(n)。但是,由于红黑树的结构,map相对于unordered_map会占用更多的内存空间。
unordered_map是基于哈希表实现的,因此查找、插入和删除的时间复杂度是常数级别的,即O(1)。但是,由于哈希函数的不同,unordered_map的性能不如map稳定,尤其在负载因子较高时,它的性能会下降。
因此,当需要高性能的容器时,可以选择unordered_map;当需要稳定性能且有空间限制时,可以选择map。
c++哈希表快速查找
C++中可以使用标准库中的`unordered_map`实现哈希表快速查找。`unordered_map`是一个关联容器,使用哈希表实现,支持快速插入、查找和删除操作。
使用方法如下:
```c++
#include <unordered_map>
#include <string>
using namespace std;
int main() {
unordered_map<string, int> myMap; // 创建一个<string, int>类型的unordered_map
myMap["apple"] = 10; // 插入键值对
myMap["banana"] = 20;
myMap["orange"] = 30;
cout << myMap["apple"] << endl; // 通过键查找值
cout << myMap["banana"] << endl;
cout << myMap["orange"] << endl;
return 0;
}
```
输出:
```
10
20
30
```
需要注意的是,`unordered_map`中的键值对是无序的,插入和查找操作的时间复杂度为O(1)。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)