[英]How do you randomly generate a number from an array and then use that number in a switch statement in C++?
[英]How to choose a number randomly from a list/Array in c++?
親愛的專家,我有一個名為 Dstr 的向量,如果我執行 Dstr.size(),它會給我一個數組。 我想從 Dstr/Dstr.size() 中隨機選擇一個候選人。 您能否建議我如何在 c++ 中做到這一點?
提前致謝 問候
要從向量中獲取隨機元素,可以使用std::sample
:
decltype(Dstr)::value_type element;
std::sample(Dstr.begin(), Dstr.end(), &element, 1, std::mt19937{std::random_device{}()});
需要 C++17。
這是生成隨機數的 C++ 方式。 我假設您的數組/向量不為空
size_t random(size_t min, size_t max)
{
static std::mt19937 randGen( std::random_device{}() );
return std::uniform_int_distribution<size_t>(min, max)(randGen);
}
auto val = Dstr.at(random(0, Dstr.size() - 1));
自動候選 = Dstr[rand() % Dstr.size()];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.