C# Hashtable C++如何实现
时间: 2023-07-17 11:12:36 浏览: 179
Dictionary<K,V>与哈希表-C#入门经典教程.
在 C++ 中,可以使用 std::unordered_map 来实现类似于 C# 中的 Hashtable。
是一个示例代码,展示如何使用 std::unordered_map 实现类似的功能:
```cpp
#include <iostream>
#include <unordered_map>
#include <string>
int main() {
std::unordered_map<std::string, int> hashtable;
// 添加键值对
hashtable["key1"] = 123;
hashtable["key2"] = 456;
hashtable["key3"] = 789;
// 获取值
std::cout << "Value of key1: " << hashtable["key1"] << std::endl;
std::cout << "Value of key2: " << hashtable["key2"] << std::endl;
std::cout << "Value of key3: " << hashtable["key3"] << std::endl;
// 检查键是否存在
if (hashtable.find("key2") != hashtable.end()) {
std::cout << "Key 'key2' exists in the hashtable." << std::endl;
}
// 删除键值对
hashtable.erase("key3");
// 遍历所有键值对
for (const auto& pair : hashtable) {
std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
}
return 0;
}
```
在上述代码中,我们使用 std::unordered_map<std::string, int> 创建了一个类似于 C# 中的 Hashtable。std::unordered_map 是一个无序的关联容器,用于存储键值对。
我们可以使用 [] 运算符添加和获取键值对,使用 find() 函数检查键是否存在,并使用 erase() 函数删除键值对。我们还可以使用范围循环遍历所有键值对。
请注意,需要包含头文件 <unordered_map> 来使用 std::unordered_map。
希望这能帮助到你!如果还有其他问题,请随时提问。
阅读全文