C++ dilinde string std::thread::id
nasıl yazılır? Bir dize veya char dizisine std::this_thread::get_id()
tarafından oluşturulan typecast çıktısını deniyorum.std :: thread :: id dizgisi C++ dilinde nasıl dönüştürülür?
7
A
cevap
15
auto myid = this_thread.get_id();
stringstream ss;
ss << myid;
string mystring = ss.str();
4
Aslında std::thread::id
(this bakınız) ostream
kullanılarak yazdırılabilir olup.
Yani bunu yapabilirsiniz:
#include <sstream>
std::ostringstream ss;
ss << std::this_thread::get_id();
std::string idstr = ss.str();
4
std::thread::id
bir std::string
için "dönüştürme" Sadece sana biraz eşsiz ama aksi yararsız metin verir. Alternatif olarak, insanlar tarafından kolay tanımlama için yararlı bir küçük tamsayı numarasına "dönüştürebilirsiniz":
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];
}
"Dönüştürme" ile ne demek istiyorsunuz? "Dönüştürülmüş" 'std :: thread :: id' ile ne yapmak istersiniz? – Walter