Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
询问如何使用随机整数作为向量的大小 因此,在C++中,如何记住随机数是很困难的。我不知道该怎么做,所以如果有人能提醒我,那就太好了。我试图用随机整数填充一个随机大小的向量。以下是我的代码: #include <cstdlib> #include <iostream> #include <vector> int main() { int randSize = rand(); int sum = 0; int product = 1; std::vector<int> numbers(randSize); int output; for (int i = 0; i < numbers.size(); i++) { int randNum = rand(); numbers[i] = randNum; output = numbers[i]&2; if (output == 0) { sum += numbers[i]; } else { product = product * numbers[i]; } } std::cout << "The sum of even numbers is " << sum << "\n"; std::cout << "The product of off numbers is " << product << "\n"; } #包括 #包括 #包括 int main() { int randSize=rand(); 整数和=0; int乘积=1; 标准:向量数(随机大小); 整数输出; 对于(int i=0;i_C++_Vector_Random - Fatal编程技术网

询问如何使用随机整数作为向量的大小 因此,在C++中,如何记住随机数是很困难的。我不知道该怎么做,所以如果有人能提醒我,那就太好了。我试图用随机整数填充一个随机大小的向量。以下是我的代码: #include <cstdlib> #include <iostream> #include <vector> int main() { int randSize = rand(); int sum = 0; int product = 1; std::vector<int> numbers(randSize); int output; for (int i = 0; i < numbers.size(); i++) { int randNum = rand(); numbers[i] = randNum; output = numbers[i]&2; if (output == 0) { sum += numbers[i]; } else { product = product * numbers[i]; } } std::cout << "The sum of even numbers is " << sum << "\n"; std::cout << "The product of off numbers is " << product << "\n"; } #包括 #包括 #包括 int main() { int randSize=rand(); 整数和=0; int乘积=1; 标准:向量数(随机大小); 整数输出; 对于(int i=0;i

询问如何使用随机整数作为向量的大小 因此,在C++中,如何记住随机数是很困难的。我不知道该怎么做,所以如果有人能提醒我,那就太好了。我试图用随机整数填充一个随机大小的向量。以下是我的代码: #include <cstdlib> #include <iostream> #include <vector> int main() { int randSize = rand(); int sum = 0; int product = 1; std::vector<int> numbers(randSize); int output; for (int i = 0; i < numbers.size(); i++) { int randNum = rand(); numbers[i] = randNum; output = numbers[i]&2; if (output == 0) { sum += numbers[i]; } else { product = product * numbers[i]; } } std::cout << "The sum of even numbers is " << sum << "\n"; std::cout << "The product of off numbers is " << product << "\n"; } #包括 #包括 #包括 int main() { int randSize=rand(); 整数和=0; int乘积=1; 标准:向量数(随机大小); 整数输出; 对于(int i=0;i,c++,vector,random,C++,Vector,Random,如评论中所述,并使用中的标准库提供的设施。例如: std::vector<int> makeRandomBunch(int min, int max, std::size_t min_elements, std::size_t max_elements) { std::mt19937 generator(42); std::uniform_int_distribution<std::size_t> size_distribution(min_elemen

如评论中所述,并使用中的标准库提供的设施。例如:

std::vector<int> makeRandomBunch(int min, int max, std::size_t min_elements, std::size_t max_elements)
{
    std::mt19937 generator(42);

    std::uniform_int_distribution<std::size_t> size_distribution(min_elements, max_elements);
    std::size_t num_elements = size_distribution(generator);

    std::vector<int> data;
    data.reserve(num_elements);

    std::uniform_int_distribution<int> element_distribution(min, max);
    std::generate_n(std::back_inserter(data), num_elements, [&](){ return element_distribution(generator); });

    return data;
}
std::vector makeRandomBunch(int-min,int-max,std::size\u-t-min\u元素,std::size\u-t-max\u元素)
{
标准:mt19937发电机(42);
标准:均匀分布大小分布(最小元素、最大元素);
std::size\t num\u元素=size\u分布(生成器);
std::矢量数据;
数据保留(num_元素);
标准:均匀分布元素分布(最小值、最大值);
std::generate_n(std::back_inserter(data),num_元素,[&](){return element_distribution(generator);});
返回数据;
}
这里,我们使用的是一个伪随机数生成器(不要被它的名字吓坏了,它只是以它的名字命名的)以值42作为随机性源的种子。An可用于将随机生成器提供的随机性塑造为从给定范围采样的随机整数。我们使用
均匀整数分布
为向量随机选择
元素(u min
元素(u max)之间的大小,以及空间大小我们使用另一个
均匀分布
,我们将从中选择
int
元素(介于
min
max
之间)。最后,我们结合a使用元素填充向量并返回向量


。与其重新学习,尤其是最后的例子,不如让你继续学习。关于
std::vector numbers(randSize);
的警告。随机数(即使是很旧的
rand
)可能会变得很大,用作
vector
的大小很容易耗尽可用内存。