如何在std :: set中选择一个随机元素? [英] How to select a random element in std::set?

查看:1857
本文介绍了如何在std :: set中选择一个随机元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在 std :: set 中选择随机元素?

How can I select a random element in an std::set?

我试过这样:

int GetSample(const std::set<int>& s) {
  double r = rand() % s.size();
  return *(s.begin() + r); // compile error
}

但是

推荐答案

您可以使用 std :: advance 方法。

#include <set>
#include <algorithm>

int main() {
  using namespace std;
  // generate a set...
  set<int> s;
  for( int i = 0; i != 10; ++i ) s.insert(i);

  set<int>::const_iterator it(s.begin());

  // 'advance' the iterator 5 times
  advance(it,5);
}

这篇关于如何在std :: set中选择一个随机元素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆