c++ hash_map 用法

C++的hash_map是一个哈希表实现的数据结构,用于存储键值对,并支持快速的查找、插入、删除等操作。C++11引入了std::unordered_map,是hash_map的替代品,使用方式基本相同。

下面是hash_map的用法示例:

首先需要包含头文件:

#include <hash_map> // C++98
#include <unordered_map> // C++11
using namespace std; // 或者不使用 using namespace std;,使用 std::hash_map 和 std::unordered_map

然后可以声明一个hash_map对象,其模板参数为键类型和值类型:

hash_map<string, int> myMap; // C++98
unordered_map<string, int> myMap; // C++11

现在可以通过下标操作符[]向hash_map中添加键值对,如果键已存在,则修改对应的值:

myMap["apple"] = 1;
myMap["banana"] = 2;

也可以使用insert函数插入键值对:

myMap.insert(make_pair("cherry", 3));

使用find函数查找特定键是否存在,如果存在则返回对应的迭代器,否则返回end()迭代器:

hash_map<string, int>::iterator it = myMap.find("banana");
if (it != myMap.end()) {
    cout << "The value of banana is " << it->second << endl;

使用erase函数删除指定键:

myMap.erase("banana");

遍历hash_map中的键值对可以使用迭代器:

for (auto it = myMap.begin(); it != myMap.end(); it++) {
    cout << it->first << " " << it->second << endl;

这是hash_map的基本用法,如果您需要更深入的了解,可以参考C++ STL文档或相关书籍。

  •