【发布时间】:2015-02-18 19:42:20
【问题描述】:
我想要一个函数来制作二进制随机数列表。我不知道哪种方法适合这个目的。我可以使用数组、while 命令、链表或 std .. 来实现。
我想从函数中返回整个列表。在数组中,我认为我不能那样做。例如下面的函数只返回第一个元素。
long int SourceNode::database(long int chunk_var[])
{
srand ( time(0) );
for(int j = 0; j<50 ;j++)
{
int myrand = rand() % 2 ;
myrand = myrand & 0x3ff;
chunk_var[j]= myrand;
}
return *chunk_var;
}
我想要一些东西来返回整个列表,因为我想在另一个函数中调用那个函数(整个列表)。除了制作数组之外,还有其他解决方案吗?
【问题讨论】:
-
rand() % 2的结果将是0或1。这就是你得到的“模2”。myrand = myrand & 0x3ff那时不会为你做任何事情,所以我不知道你为什么要这么做。 -
std::vector<bool>?boost::dynamic_bitset? -
当您使用 50 个值时,您可以使用
std::uint64_t并使用位掩码/移位来获取所需值。