如何做热词网站,友情链接的网站,中山移动网站建设公司,坪山新区网站建设在C中#xff0c;“字典”通常指的是std::map或std::unordered_map#xff0c;它们是标准库中提供的关联容器#xff0c;用于存储键值对。以下是一些常见的操作示例#xff0c;包括插入、访问、删除和遍历元素。 使用 std::map std::map 是一种有序的关联容器#xff0c;键…在C中“字典”通常指的是std::map或std::unordered_map它们是标准库中提供的关联容器用于存储键值对。以下是一些常见的操作示例包括插入、访问、删除和遍历元素。 使用 std::map std::map 是一种有序的关联容器键值对按键排序。 #include iostream
#include mapint main() {// 创建一个map键是字符串值是整数std::mapstd::string, int dictionary;// 插入元素dictionary[apple] 1;dictionary[banana] 2;dictionary[orange] 3;// 访问元素std::cout apple: dictionary[apple] std::endl;// 检查键是否存在if (dictionary.find(banana) ! dictionary.end()) {std::cout banana exists with value: dictionary[banana] std::endl;} else {std::cout banana does not exist std::endl;}// 遍历所有元素for (const auto pair : dictionary) {std::cout pair.first : pair.second std::endl;}// 删除元素dictionary.erase(orange);// 尝试访问已删除的元素if (dictionary.find(orange) dictionary.end()) {std::cout orange has been deleted std::endl;}// 清空mapdictionary.clear();return 0;
}使用 std::unordered_map std::unordered_map 是一种无序的关联容器基于哈希表实现查找、插入和删除操作平均时间复杂度为O(1)。 #include iostream
#include unordered_mapint main() {// 创建一个unordered_map键是字符串值是整数std::unordered_mapstd::string, int dictionary;// 插入元素dictionary[apple] 1;dictionary[banana] 2;dictionary[orange] 3;// 访问元素std::cout apple: dictionary[apple] std::endl;// 检查键是否存在if (dictionary.find(banana) ! dictionary.end()) {std::cout banana exists with value: dictionary[banana] std::endl;} else {std::cout banana does not exist std::endl;}// 遍历所有元素for (const auto pair : dictionary) {std::cout pair.first : pair.second std::endl;}// 删除元素dictionary.erase(orange);// 尝试访问已删除的元素if (dictionary.find(orange) dictionary.end()) {std::cout orange has been deleted std::endl;}// 清空unordered_mapdictionary.clear();return 0;
}总结 std::map键值对按键排序适用于需要保持顺序的场景。例如如果你需要按字母顺序遍历元素。 std::unordered_map键值对无序但查找、插入和删除速度更快适用于不需要顺序的场景。例如如果你只需要快速查找、插入和删除元素。 两种容器在实际使用中的选择依赖于具体需求例如是否需要键的有序性和性能要求等。如果需要按键排序可以使用std::map如果更关注性能且不需要有序性可以选择std::unordered_map。