使用pthread_t作为映射中的键
Using pthread_t as a key in map
我想在映射中存储一个自己的类,键的类型为pthread_t。(我类的每个对象都包含一个pthread_t数据成员,所以我希望每个实例在映射中作为键与该pthread_t关联)问题是pthread_t无法进行比较,只能与pthread_equal进行比较,所以我不能将其作为键放在映射中。
我已经看到了unordered_map,但是如何实现pthread_t的哈希函数呢?
到目前为止,我一直在考虑使用pthread_self()来比较它们,但这也是不可能的,因为返回的值是pthread_t,而且我不想使用这只是无符号长整型的typedef这一事实。
如果无法使用某种映射,我如何将pthread_t的对象存储在容器中,并使用pthread_self()函数快速找到它们?
这样它应该工作:
bool myCmp(const pthread_t &a, const pthread_t &b)
{
return memcmp(&a, &b, sizeof(pthread_t)) < 0;
}
map<pthread_t, myDataType, myCmp> myMap;
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 将函数类成员映射到类本身内部
- 如何在 C# 中映射双 C 结构指针?
- 如何在C++中使用结构生成映射
- 使用std::函数映射对象方法
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- C++映射分割错误(核心转储)
- 内联映射初始化的动态atexit析构函数崩溃
- 使用"std::unordereded_map"映射到"std::list"对象
- 如何从多映射中删除特定的重复项
- 在未初始化映射的情况下,将值插入到映射的映射中
- QT通过C++添加映射QML项目
- 在c++中访问int到类对象的映射时出错
- 在C++中搜索嵌套多映射值
- 错误处理.将系统错误代码映射到泛型
- C++匿名结构作为std::映射值
- 如何从存储在std::映射中的std::集中删除元素
- 递归无序映射
- 正在VS调试器中监视映射条目