gpt4 book ai didi

c++ - 使用 pthread_t 作为映射中的键

转载 作者:太空宇宙 更新时间:2023-11-04 10:37:55 25 4
gpt4 key购买 nike

我想在映射中存储我自己的一个类,键是 pthread_t 类型。(我类的每个对象都包含一个 pthread_t 数据成员,所以我希望每个实例都与该 pthread_t 作为键相关联, 在 map 中)问题是 pthread_t 无法比较,只能与 pthread_equal 进行比较,所以我不能将它作为键放在映射中。

我看过unordered_map,但是我怎样才能为pthread_t实现一个hash函数呢?

直到现在我都考虑过使用 pthread_self() 来比较它们,但这也是不可能的,因为返回值是 pthread_t,而且我不想使用这只是 unsigned long int 的 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++ - 使用 pthread_t 作为映射中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36530124/

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