如何获得随机元素提升 unordered_map?

Posted

技术标签:

【中文标题】如何获得随机元素提升 unordered_map?【英文标题】:how get a random element boost unordered_map? 【发布时间】:2017-02-27 02:19:40 【问题描述】:

我使用 typedef boost::unordered_map。如何获取随机元素 v: c++ 03

代码:

member_1.insert(std::make_pair(gg, M2_NEW CGGList(gg)));

    typedef boost::unordered_map<CGG, CGGList*> Map1;
    Map1 member_1;

【问题讨论】:

生成随机key得到随机值。使用迭代器随机迭代多次 【参考方案1】:

您将找不到有效的方法(错误的数据结构)。

但你总是可以:

auto random_it = std::next(member1.begin(), my_random(member2.size()));

my_random 的实现方式类似于 rand()%n(不好)或使用 std::uniform_int_distribution&lt;size_t&gt;(更好)。

【讨论】:

自动 ?我使用 C++ 03 所以?用正确的类型替换它。我没有看到问题。我正在回答这个问题,我不需要教 C++ 或为我认为的未知规范编写完整的解决方案。 问题是如何.. on 03

以上是关于如何获得随机元素提升 unordered_map?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 unordered_map 中插入 3 个元素或其他奇数个元素?

std::unordered_map 如何表现? [C++]

如何在删除元素时防止重新散列 std::unordered_map?

有效擦除 tr1::unordered_map 中的元素

如何利用Python随机从list中挑选一个元素

unordered_map<int,int> 如何处理负面元素?