std::hash<std::thread::id>
来自cppreference.com
<tbody>
</tbody>
| 在标头 <thread> 定义
|
||
template<> struct hash<std::thread::id>; |
(C++11 起) | |
std::hash 对 std::thread::id 类的模板特化允许用户获得线程标识符的散列。
示例
| 本节未完成 原因:有意义地使用散列的示例 |
运行此代码
#include <chrono>
#include <iostream>
#include <thread>
#include <vector>
using namespace std::chrono_literals;
void foo()
{
std::this_thread::sleep_for(10ms);
}
int main()
{
std::vector<std::thread> v;
for (int n = 0; n < 4; ++n)
v.emplace_back(foo);
std::hash<std::thread::id> hasher;
for (auto& t : v)
{
std::cout << "线程 " << t.get_id() << " 散列为 "
<< hasher(t.get_id()) << '\n';
t.join();
}
}
可能的输出:
线程 139786440144640 散列为 8905351942358389397
线程 139786431751936 散列为 9222844670065909738
线程 139786423359232 散列为 18199000599186780501
线程 139786414966528 散列为 15386662774029264672
参阅
(C++11) |
散列函数对象 (类模板) |