【问题标题】:Function to pick a seemingly random index from an array<string> [closed]从数组<string>中选择看似随机的索引的函数[关闭]
【发布时间】:2021-12-16 01:02:32
【问题描述】:

我在弄清楚如何从 array&lt;string&gt; 中选择随机索引时遇到问题。

这是一款纸牌游戏。我不想洗牌,而是想使用 srand 函数,在函数内部看似选择一个随机数。但我尝试的每件事都失败了。

这是数组的一部分:

array cards = { "Ess \3", "Ess \4", "Ess \5", "Ess \6","2 \3","2 \4" };

\3 \4 \5 \6 是牌的符号,例如红心、钻石、黑桃。

无论如何.. 我只想从 52 中挑选一个看似随机的索引。 当我认为我已经接近时,我会遇到这样的事情: “C++ 不存在合适的构造函数来从 int 转换为 basic_string”之类的。

我不明白。我已经尝试了很长时间。请帮帮我。

我最近的尝试...

string randindex = rand() % 52;
cout << cards[randindex];

这当然不适合我。在创建函数之前,我首先必须学习如何选择随机索引...

【问题讨论】:

  • 请显示您尝试做的事情。
  • 我会推荐 std::uniform_int_distribution 而不是 srand
  • rand() % 52 返回一个整数,因此不能存储在字符串中。存储为整数,然后将整数用作数组的索引。此外,应该优先使用现代随机引擎而不是 rand。
  • 请注意,函数rand() 仅保留在 C++ 库中,以与古老的源文件兼容。对于现代 C++ 随机数生成,请使用 &lt;random&gt; 头文件。有关完整详细信息,请参阅official N3551 paper
  • @gunnar20008 作为这个问题的原始海报(OP),如果您发现 ABacker 提供的答案有用,您应该支持和/或接受它。谢谢 !这是流程反馈部分的一部分。详情请见https://stackoverflow.com/help/how-to-ask

标签: c++ arrays string random


【解决方案1】:
int index = rand() % 52;
string card = cards[index];

随意使用卡片变量。

【讨论】:

  • 伙计..这是工作..什么...谢谢!你能想象我尝试了几个小时来解决这个问题吗?我很接近!我小心翼翼地解决了这个问题!!!我脑子里想的太多了。我刚刚学习了函数、数组、数据结构等等,我脑子里想的很多。
  • 我知道你的感受,几年前我就在你的位置上,祝你好运。
  • @gunnar20008 如果这个答案帮助你解决了问题,请考虑accepting它。
猜你喜欢
  • 2014-04-21
  • 1970-01-01
  • 2014-04-28
  • 2021-02-09
  • 2014-11-16
  • 2015-08-17
  • 1970-01-01
  • 2013-10-08
  • 2020-10-27
相关资源
最近更新 更多