【发布时间】:2018-02-25 02:57:23
【问题描述】:
我在 12 年级的计算机科学课上,我的老师要求我们完成一项涉及基本功能审查的作业,以便从去年开始再次熟悉 C++。
我正在重新创建一个 Python 程序,该程序使用字典将键值保存为商店产品(例如“Pasta”)并将该键的值保存为价格(例如 3.99)并使用该字典创建一种购物体验,即装满购物车,然后使用键及其值签出购物车中的商品。
但是,我很难重新创建字典在 C++ 中提供的键值存储。
我想知道哈希表是否是一种有效的解决方案?我已经对此进行了一些研究,看起来很有希望,但我不知道这是否是一个死胡同。
【问题讨论】:
-
std::unordered_map
-
考虑一下 Python 字典到底是什么。它是哈希表/哈希图的一种形式。正如 DeiDei 所说,查看 std:unordered_map。但是,如果您想对较低级别的语言更加熟悉,我建议您更多地了解实现/事情如何在底层工作 - 特别是数据结构。 Python 抽象了很多东西。
-
"字典在 C++ 中提供" - C++ 不提供任何称为字典的东西。
-
@NeilButterworth:它隐含地 "...重新创建字典提供的键值存储 [in python],在 C++ 中"。
-
您可以考虑
std::unordered_map<std::string, double>,但还有其他选择:例如您可以将整数美分存储在int中,而不必处理浮点舍入问题。