散列表的创建与查找c++
时间: 2024-02-13 10:03:19 浏览: 68
散列表的建立和查找.zip
5星 · 资源好评率100%
散列表(哈希表)是一种根据关键字直接访问内存存储位置的数据结构,常用于实现字典、集合等高效的数据存储和查询。下面是 C++ 中散列表的创建和查找的示例代码:
```cpp
#include <iostream>
#include <unordered_map>
using namespace std;
int main() {
// 创建散列表
unordered_map<string, int> hashTable;
// 添加元素
hashTable["apple"] = 1;
hashTable["banana"] = 2;
hashTable["orange"] = 3;
// 查找元素
string key = "banana";
if (hashTable.find(key) != hashTable.end()) {
cout << key << " is found. Value is " << hashTable[key] << endl;
} else {
cout << key << " is not found." << endl;
}
return 0;
}
```
在上面的示例中,我们使用了 STL 中的 `unordered_map` 类模板来实现散列表。创建散列表时,需要指定关键字和值的类型。添加元素时,使用关键字作为下标来访问散列表,并赋值为对应的值。查找元素时,使用 `find()` 函数查找指定关键字的位置,并判断是否等于散列表的 `end()` 位置,如果不等于,则说明元素存在,可以通过下标访问对应的值。
需要注意的是,散列表的查找和添加操作时间复杂度为 O(1),但是散列表的哈希函数可能存在冲突,导致查找和添加元素的时间复杂度退化到 O(n),因此需要根据具体情况选择合适的哈希函数和散列表实现方式。
阅读全文