gpt4 book ai didi

c++ - 在 unordered_map 中选择随机元素

转载 作者:IT老高 更新时间:2023-10-28 22:32:53 33 4
gpt4 key购买 nike

我这样定义一个 unordered_map:

std::unordered_map<std::string, Edge> edges;

有没有一种从 unordered_map 边中选择随机边的有效方法?

最佳答案

C++11 之前的解决方案:

std::tr1::unordered_map<std::string, Edge> edges;
std::tr1::unordered_map<std::string, Edge>::iterator random_it = edges.begin();
std::advance(random_it, rand_between(0, edges.size()));

C++11 以后的解决方案:

std::unordered_map<std::string, Edge> edges;
auto random_it = std::next(std::begin(edges), rand_between(0, edges.size()));

选择有效随机数的函数由您选择,但请确保它返回的数字在 [0 ; edge.size() - 1]edges 不为空时。

std::next函数简单地包装了 std::advance以允许直接分配的方式发挥作用。

关于c++ - 在 unordered_map 中选择随机元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27024269/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com