相关疑难解决方法(0)

我是否施放了malloc的结果?

在这个问题,有人建议意见,我应该不会投的结果malloc,即

int *sieve = malloc(sizeof(int) * length);
Run Code Online (Sandbox Code Playgroud)

而不是:

int *sieve = (int *) malloc(sizeof(int) * length);
Run Code Online (Sandbox Code Playgroud)

为什么会这样呢?

c malloc casting

2318
推荐指数
27
解决办法
22万
查看次数

C++ 11随机数分布在各个平台上并不一致 - 有哪些替代方案?

我正在为标准的C++ 11引擎寻找一组可移植的发行版,比如`std :: mt19937'(参见http://en.cppreference.com/w/cpp/numeric/random).

引擎实现一致地执行(即在不同平台上生成相同的序列 - 使用Clang和MSVC进行测试),但是分布似乎在不同平台上以不同方式实现.

因此,即使引擎产生相同的序列,似乎分布(例如std::normal_distribution<double>)在不同的平台上不使用相同数量的样本(即产生不同的结果),这在我的情况下是不可接受的.

可能有一个第三方库我可以使用它遵循C++ 11随机模板,但这将在流行的平台上提供一致的值(看看GCC,MSVC和Clang/llvm的支持).

我到目前为止看到的选项是:

  • Boost.random(有点重,但值得,因为它很好地匹配c ++ 11对应物)
  • 从libstd ++克隆(也值得并且可能是可移植的,但是删除特定的函数可能并不简单)
  • 创建我自己的类似C++ 11的随机发行版

我需要制服,正常,毒药和瑞利.

c++ random boost libstdc++ c++11

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

标签 统计

boost ×1

c ×1

c++ ×1

c++11 ×1

casting ×1

libstdc++ ×1

malloc ×1

random ×1