簡體   English   中英

std::random_device 不是 std 的成員

[英]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.

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