C++ concurrent_unordered_map C++11 Microsoft 使用无符号长作为密钥/哈希函数
C++ concurrent_unordered_map C++11 Microsoft Using unsigned long as key / HASH Function
我在Windows 7 64位中使用Visual Studio 2012。
我需要使用并发数据结构,因为我将使用线程。我发现微软有几个 http://msdn.microsoft.com/en-us/library/dd504906.aspx#unordered_map
一般来说,我必须处理
将数据接收到队列中。准备好后处理...继续接收数据。
我将使用 Microsoft 提供的 concurrent_unordered_map 类来拥有一个存储名为 TouchInfo 的类的 cuncurrent 映射。每个 TouchInfo 对象都有一个唯一的 ID(无符号长),这是我用来检索对象(因为它需要更新)的 ID。
同时,我需要将 TouchInfo 插入到并发队列中...... 一旦队列达到一个数字,我就会处理队列...(不同的线程)
1. 我的第一个问题是我是否需要无符号长...无符号长整型是系统从Windows 7(WinUser.h)中的多点触控系统给出的ID(dwID) 由于我无法控制ID,因此我想确保我的哈希函数得到优化。
typedef struct tagTOUCHINPUT {
LONG x;
LONG y;
HANDLE hSource;
DWORD dwID;
DWORD dwFlags;
DWORD dwMask;
DWORD dwTime;
ULONG_PTR dwExtraInfo;
DWORD cxContact;
DWORD cyContact;
} TOUCHINPUT, *PTOUCHINPUT;
也许,我什么都不用做,只需声明
我在网络上看到有些人使用Boost来创建哈希...
完全欢迎对我的设计进行任何输入和更改...
非常欢迎回答我的问题!
谢谢!
concurrent_unordered_map
使用std::hash
,它具有unsigned long
的默认实现。开箱即用即可正常工作。
默认哈希尝试在大多数用例中达到最佳状态,但无法保证,因为每个人的数据都不同。在疯狂地查看哈希函数之前,一定要对其进行基准测试(有很多,您可能会浪费大量时间)。
- SSH通过/sbin/SSH无法读取RSA密钥文件(从控制台运行)
- 允许从 std::map 的密钥窃取资源?
- TMap::Emplace() 在应用现有密钥时会覆盖吗?
- 在没有密钥的情况下读取密文的剩余噪声预算
- 如何修复无效的API密钥,IP或操作权限错误?
- 所有可能的链接生成器与64位密钥
- 如何在unordered_map中更改密钥?
- 获取当前密钥状态?
- curl_easy_perform() 失败:SSL 对等证书或 SSH 远程密钥不正常
- 将密钥发送到非前台的游戏窗口
- 函数从单向链表和错误服务中获取密钥
- C 11多态映射键静态断言失败:哈希函数必须与密钥类型的参数无关
- C++ concurrent_unordered_map C++11 Microsoft 使用无符号长作为密钥/哈希函数
- 好的哈希函数,2个整数用于一个特殊的密钥
- 在RFC3711(SRTP)中,OpenSSL AES_ctr128_encrypt()作为密钥派生的伪随机函数意外输出
- 使用基元函数和存储在 KSP Microsoft中的密钥
- NIST SP 800-56A 串联/单步密钥派生函数的现有实现
- 如何使用 C++11 中的函数式编程从映射中获取密钥
- (C++) 无法迭代密钥哈希器函数中的向量
- 绑定密钥?(c)(将字符串转换为函数)