[英]std::random_device is not a member of std
在我包含<bits/stdc++.h>
之前, random_device
class 不會被識別為std::
命名空間的一部分。
我想問你是否有另一種解決方案,因為我真的不想為此目的包括所有標准庫。
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(1,5);
std::cout<<dis(gen);
這是一個好兆頭,確實,您不想包含所有標准庫 header 文件(通過駭人聽聞的非標准#include <bits/stdc++.h>
混合物),但是,您確實需要(明確地) 包括與您實際使用的標准庫的方面/組件相關的標題。
對於std::random_device
class(以及您使用的其他兩個與隨機相關的類),您需要包含定義這些類的 header,並使用以下行:
#include <random>
此外,對於std::cout
(和相關)類,您將需要#include <iostream>
。
正如評論中所提到的, cppreference 網站是一個很好的地方,可以快速指導您需要為任何std::xxxx
類包含哪些標頭,盡管您很快就會“了解”更常見的標准庫類的相關標題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.