c++ - 在 C++ 中将不同的键映射到相同的值

标签 c++

于是四处搜索,发现我们可以使用multi-map将一组等价的键映射到不同的值。我想知道如何做相反的事情?那就是将不同的键映射到同一个值?是否有一个 STL 数据结构?

最佳答案

普通的 std::map(或 std::unordered_map)可以做到这一点。您有几种选择:

  • 普通键值存储,您可以根据需要在其中复制值
  • 普通键值存储,但值是指向可以共享的实际数据的指针,可选择使用 std::shared_ptr
  • 使用某种结构(可能是 std::tuple)来收集 key (尽管处理这个可能比它的值(value)更麻烦,我真的不推荐这样做)
  • 使用Boost multi-index containers

有了 Boost,你就有了一个可以直接使用的现成解决方案,如果你已经在你的项目中使用了 Boost(它是一组很棒的库,并且很好地补充了标准库),我认为选择它是一件很容易的事那个解决方案。

关于c++ - 在 C++ 中将不同的键映射到相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36638018/

相关文章:

c++ - 在子类中设置变量

c++ - 使用 glPointSize 的像素宽度 - 无效

c++ - 错误 : reference to ‘sword’ is ambiguous in armadillo and oracle occi compatibility issue

c++ - 构建 NFIQ2 时从 ‘char’ 到 ‘char*’ 的无效转换

Python内嵌C代码编译报错

c++ - 主内存 B+ 树的持久化策略

c++ - 如果 atomic_flag 变量是类的成员,我该如何初始化它?

c++ - std::push_back 使用起来相对昂贵吗?

c++ - 虚函数性能: one large class vs many smaller subclasses

c++ - Visual Studio : Creating a simple GUI