【问题标题】:Can you create std::map with only keys?您可以仅使用键创建 std::map 吗?
【发布时间】:2021-02-24 05:32:50
【问题描述】:

所以,我想使用std::map 来查找元素是否存在。所以我基本上只需要密钥,不需要任何值。

有什么方法可以做类似std::map<std::string, void> 的事情吗?或者这种东西有没有比std::map更好的替代品?

在最坏的情况下,可以使用像 std::vector<std::string> 这样的不同容器,但我很好奇您是否可以使用 std::map 执行此操作(也可以使用 std::map<std::string, bool>,但布尔值会浪费内存)。

【问题讨论】:

  • 使用std::set
  • 如果您关心的是是否存在某些东西并且您不需要任何特定顺序的数据,请使用std::unordered_set

标签: c++ dictionary stl containers


【解决方案1】:

或者对于这种东西有没有更好的替代 std::map 的方法?

是的。您描述的容器是一个集合。在标准库中有对应的映射对应的std::setstd::unordered_set

【讨论】:

    猜你喜欢
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 2010-12-23
    • 1970-01-01
    • 2017-12-24
    • 1970-01-01
    相关资源
    最近更新 更多