Pro*_*oid 0 c++ vector hashmap dimension
我需要在向量中存储两个宽度不同的数据类型值,例如:
vector<HWND, long> hwnd;
Run Code Online (Sandbox Code Playgroud)
然后通过索引获取并访问这两个值:
hwnd[0] // Get HWND and long
hwnd[1] // Get HWND and long
Run Code Online (Sandbox Code Playgroud)
请求向量解决方案或使用hashmap解决方案是否正确?我还没有使用hashmap这就是为什么我想知道这个.提前致谢.
虽然使用a std::pair是一个正确的解决方案,但它会失去一些清晰度,因为您将访问这样的元素:
hwnd[0].first
hwnd[0].second
Run Code Online (Sandbox Code Playgroud)
这使得绝对不清楚哪个是手柄,哪个是长的.
你应该使用一个struct(我在这里使用count作为用例的例子,你自己的long可能有完全不同的含义):
struct HandleCount {
HWND handle;
long count;
};
Run Code Online (Sandbox Code Playgroud)
所以你的代码看起来像:
std::vector<HandleCount> hwnd;
hwnd[0].handle
hwnd[0].count
Run Code Online (Sandbox Code Playgroud)
因此,虽然通过使用补充类型会失去一点简单性,但您可以简单地理解代码.