小编Nao*_*dar的帖子

重新种植std :: rand/c ++ 11 <random>

我试图实现一个简单的噪声函数,它接受两个整数,并根据种子结合两个参数返回一个随机浮点数.

使用std::mt19937效果很好,但出于某种原因,当我尝试使用srandrand(),我会重复数字..

注意:seed在循环中使用c ++ 11 成员函数非常非常慢.

这里有两个使用两种方法的地形(具有相同的重播号码):

c ++ 11随机:

std::random_device rd;
std::mt19937 g{ rd() };
std::uniform_real_distribution<float> gen{ -1.0, 1.0 };

float getNoise(int x, int z) {
     g.seed(x * 523234 + z * 128354 + seed);
     return gen(g);
}
Run Code Online (Sandbox Code Playgroud)

c ++ 11随机

c随机:

float getNoise(int x, int z) {
        std::srand(x * 523234 + z * 128354 + seed);
        return static_cast<float>(std::rand()) / RAND_MAX * 2.0f - 1.0f;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

对于问题:

  1. 是否有更快的方法来重新设置c ++ 11伪随机数?
  2. 为什么不srand按预期工作?

提前致谢. …

c c++ random c++11

3
推荐指数
1
解决办法
1104
查看次数

无法打开文件“SDL2.lib”

我正在尝试在 Visual C++ 2012 上的项目中打开 sdl2,但我不断收到此错误:

错误 LNK1104:无法打开文件“SDL2.lib”

我添加了额外的库和包含文件夹但没有运气..我通过链接器添加了到库的链接,但我得到了同样的错误..

我该怎么办?

c++ visual-c++ sdl-2

1
推荐指数
1
解决办法
2万
查看次数

指针和多维数组的C++双重间接

所以我一直在努力理解指针,我发现了这个:

double **DPtr; // just for example

我已经读过它可以用来指向一个多维数组但是在我使用单个间接符号(*)之前我无法使它工作.

那么,如果我不能对多维数组使用双重间接,它的用途是什么?

我试图找到答案,但我没有运气.

提前感谢您提供给我的任何信息!:)

c++ arrays pointers multidimensional-array

1
推荐指数
1
解决办法
1109
查看次数

标签 统计

c++ ×3

arrays ×1

c ×1

c++11 ×1

multidimensional-array ×1

pointers ×1

random ×1

sdl-2 ×1

visual-c++ ×1