首先引入头文件:#include<unordered_map>
创建哈希表:unordered_map<key,value> Map_name; 例如:unordered_map<int, int>hashtable;
元素的插入:
①a[key]=value;
② Map_name.insert(pair<int,int>(key,value));
③ unordered_map<int,int>Map_name={
{key1,value1},{key2,value2}};
查找键值 table_name.find(key);
返回指向末尾的迭代器:end();
用迭代器访问元素的键值 it->first
用迭代器访问元素的键值对应的元素值 it->second
C++用户手册链接:C++ 参考手册 - cppreference.com
举栗子:用哈希表实现LeetCode两数之和的问题
注意点:我们创建一个哈希表,对于每一个 x
,我们首先查询哈希表中是否存在 target - x
,然后将 x
插入到哈希表中,即可保证不会让 x
和自己匹配。
//哈希表
class Solution {
public:
vector<int> twoSum(v