c++ - 将两个键与 std::map 一起使用的最佳方法是什么?

标签 c++ dictionary stl key stdmap

我有一个 std::map 用于存储 x 和 y 坐标的值。我的数据非常稀疏,所以我不想使用数组或 vector ,这会导致大量内存浪费。我的数据范围从-250000到250000,但我最多只有几千个点。

目前我正在使用两个坐标(即 "12x45")创建一个 std::string 并将其用作键。这似乎不是最好的方法。

我的其他想法是使用 int64 并将两个 int32 塞入其中并用作键。

或者使用具有两个坐标的类。对用作 key 的类有什么要求?

最好的方法是什么?我宁愿不使用 map 。

最佳答案

使用 std::pair 作为 key :

std::map<std::pair<int,int>, int> myMap;

myMap[std::make_pair(10,20)] = 25;
std::cout << myMap[std::make_pair(10,20)] << std::endl;

关于c++ - 将两个键与 std::map 一起使用的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1112531/

相关文章:

python - 将 CSV 转换为字典,其中一列作为键,一列作为值

c++ - 为什么 C++ 有队列和堆栈,因为它已经有双端队列?

c++ - 学习 CPP : Split string and manipulation?

c++ - “return obj(value); 返回什么?

c++ - 求提高微软印章库计算效率的方法

vba - 填充字典导致错误

Python:有没有更好的方法来构造字典?

c++ - 类似函数的宏扩展为空

c++ - STL Vector 的重载运算符

c++ - 什么时候停止读取文件?