C++ 在无序对中存储值

标签 c++ arrays unordered-map unordered-set unordered

我想为一对无序的整数存储一个浮点值。我找不到任何一种易于理解的教程。例如,对于无序对 {i,j} 我想存储一个浮点值 f。如何插入、存储和检索这样的值?

最佳答案

处理无序整数对的简单方法是使用 std::minmax(i,j)生成 std::pair<int,int> .这样您就可以像这样实现存储:

   std::map<std::pair<int,int>,float> storage;
   storage[std::minmax(i,j)] = 0.f;
   storage[std::minmax(j,i)] = 1.f; //rewrites storage[(i,j)]

不可否认,适当的散列会给您带来一些额外的性能,但推迟这种优化并没有什么害处。

关于C++ 在无序对中存储值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29180271/

相关文章:

java - HackerRank 上的一维数组游戏

c++ - 在 cpp unordered_map 的自定义哈希函数中插入不起作用

c++ 多线程 - 信号处理器线程

c++ - 具有跨多个 DLL/DSO 的静态成员的模板类

c - 如何在C中存储和返回字符串

c++ - std::rotate 参数不正确?

c++ - 如何在 C++ 中修改 unordered_map 中的每个值

c++ - C++ 和 $! 之间的 PID 一致性bash 中的变量

c++ - C++ 中的类型别名

java - 使用递归方法对数组进行排序