簡體   English   中英

如何在 C++ 中將 std::thread::id 轉換為字符串?

[英]How to convert std::thread::id to string in c++?

如何在 C++ 中將std::thread::id類型轉換為字符串? 我正在嘗試將std::this_thread::get_id()生成的輸出類型轉換為字符串或字符數組。

auto myid = this_thread::get_id();
stringstream ss;
ss << myid;
string mystring = ss.str();

實際上std::thread::id可以使用ostream打印(請參閱)。

所以你可以這樣做:

#include <sstream>

std::ostringstream ss;

ss << std::this_thread::get_id();

std::string idstr = ss.str();

“轉換” std::thread::idstd::string只會給你一些獨特但無用的文本。 或者,您可以將其“轉換”為一個便於人類識別的小整數:

std::size_t index(const std::thread::id id)
{
  static std::size_t nextindex = 0;
  static std::mutex my_mutex;
  static std::map<std::thread::id, st::size_t> ids;
  std::lock_guard<std::mutex> lock(my_mutex);
  if(ids.find(id) == ids.end())
    ids[id] = nextindex++;
  return ids[id];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM