gpt4 book ai didi

C++ 如何在 vector 中存储两种数据类型

转载 作者:太空宇宙 更新时间:2023-11-04 15:15:52 24 4
gpt4 key购买 nike

我需要在一个 vector 中存储两个宽度不同的数据类型的值,例如:

vector<HWND, long> hwnd;

然后通过索引获取并获取两个值:

hwnd[0] // Get HWND and long
hwnd[1] // Get HWND and long

为此寻求 vector 解决方案或使用散列图解决方案是否正确?我还没有使用过 HashMap ,这就是为什么我想知道这一点。提前致谢。

最佳答案

虽然使用 std::pair 是一个正确的解决方案,但它失去了一些清晰度,因为您将像这样访问元素:

hwnd[0].first
hwnd[0].second

这使得完全分不清哪个是句柄,哪个是长。

您应该改为使用结构(我在这里使用 count 作为用例示例,您自己的 long 可能具有完全不同的含义):

struct HandleCount {
HWND handle;
long count;
};

所以你的代码应该是这样的:

std::vector<HandleCount> hwnd;

hwnd[0].handle
hwnd[0].count

因此,虽然您通过使用补充类型失去了一点简单性,但您反而受益于理解代码的简单性。

关于C++ 如何在 vector 中存储两种数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33434030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com