在线文档教程
C++
线程支持 | Thread support

std::hash<std::thread::id>

STD::散列<std::线程::id>

Defined in header
template<> struct hash<std::thread::id>;(since C++11)

模板的专门化std::hashstd::thread::id类允许用户获取线程标识符的散列。

二次

#include <iostream> #include <thread> #include <chrono> #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 << "thread " << t.get_id() << " hashes to " << hasher(t.get_id()) << '\n'; t.join( } }

二次

可能的产出:

二次

thread 139786440144640 hashes to 8905351942358389397 thread 139786431751936 hashes to 9222844670065909738 thread 139786423359232 hashes to 18199000599186780501 thread 139786414966528 hashes to 15386662774029264672

二次

另见

hash (C++11)hash function object (class template)

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cpPreference.com/w/cpp/线程/线程/id/散列