草庐IT

return_random

全部标签

C++0x random_device 'std::runtime_error'

我是C++初学者,我对C++0x随机数生成器有疑问。我想使用Mersennetwister引擎来生成随机int64_t数字,并且我使用我之前找到的一些信息编写了一个函数:#include#includeint64_tMyRandomClass::generateInt64_t(int64_tminValue,int64_tmaxValue){std::random_devicerd;std::default_random_enginee(rd());unsignedchararr[8];for(unsignedinti=0;i(arr[0])|static_cast(arr[1])(a

c++ - return 语句中可以省略 return 关键字吗?

我最近在这个ApacheAxistutorialexample.中看到了下面的一段代码intmain(){intstatus=AXIS2_SUCCESS;axutil_env_t*env=NULL;axutil_allocator_t*allocator=NULL;env=create_environment();status=build_and_serialize_om(env);(status==AXIS2_FAILURE){printf("buildAXIOMfailed");}axutil_env_free(env);0;}我不明白的是最后的0;。那个return语句没有ret

C++ 标准 : return by copy to initialize a reference without RVO: is there any copy?

让我们考虑下一个示例:structbig_type{};//Returnbycopyautofactory(){returnbig_type{};}voidany_scope_or_function(){big_type&&lifetime_extended=factory();}假设RVO被禁止或根本不以任何方式存在,big_type()是否会或可以被复制?还是将引用直接绑定(bind)到return语句中构造的临时对象?我想确保big_type析构函数仅在any_scope_or_function结束时被调用一次。我使用C++14,以防某些行为在标准版本之间发生变化。

c++ - 如何让Boost::random和Matlab产生相同的随机数

为了检查我的C++代码,我希望能够让Boost::Random和Matlab产生相同的随机数。所以对于Boost,我使用代码:boost::mt19937var(static_cast(std::time(0)));boost::uniform_intdist(1,6);boost::variate_generator>die(var,dist);die.engine().seed(0);for(inti=0;i产生(程序的每次运行):4456464634对于matlab,我使用:RandStream.setDefaultStream(RandStream('mt19937ar','s

c++ - std::default_random_engine 即使改变种子也会生成相同的值?

我正在尝试实现一个类,该类将用作随机库的某种包装器,以便我可以(我认为)在我的代码中的其他地方以更直观的方式使用它的对象和函数。在我的标题中有这样的内容:classRandomDevice{private:unsignedlongrand_seed;default_random_engineengine;public:RandomDevice(unsignedlongn);intrandInt(intmin,intmax);};然后在.cpp文件中我实现了这两个函数(constructor和randInt),如下所示:RandomDevice::RandomDevice(unsigne

'Random_shuffle':不是“ std”错误的成员

我正在尝试使用std::random_shuffle,并获得汇编错误。我的编译器是V140(VisualStudio2015),并且我在X64,发行模式下工作。我的代码:#include#includevoidfoo(){std::vectorv;std::random_shuffle(v.begin(),v.end());}我遇到的错误:errorC2039:'random_shuffle':isnotamemberof'std'errorC3861:'random_shuffle':identifiernotfound知道问题所在吗?谢谢!看答案该代码使用工具链V140的默认设置进行编译。

c++ - C2556 : overloaded function differs only by return type

我正在阅读EffectiveC++,它告诉我“可以重载仅因常量不同而不同的成员函数”。书中的例子是:classTextBlock{public:constchar&operator[](std::size_tposition)const;char&operator[](std::size_tposition);private:std::stringtext;}我下面的示例使用了一个存储指针。classA{public:A(int*val):val_(val){}int*get_message(){returnval_;}constint*get_message(){returnval_

c++ - 在 void C/C++ 例程末尾添加 return 语句有什么意义?

我看到函数/方法在函数末尾有return语句的签名中带有voidreturn。这是什么原因,这是否适用于其他语言?据我所知,如果我想在函数末尾以外的任何地方退出,我可以使用return。C示例:voidfunction(void){intx=1+2;return;//whatdoweneedthisfor,ifatall?} 最佳答案 这在这里似乎毫无意义。但我的猜测是,这种东西可用于在不支持在右大括号处放置断点的IDE中放置断点,并且通过在此处放置断点,可以在监window口等中检查某些值。

c++ - 试图仅在 g++ 的宏中使 -Waggregate-return 保持沉默 - 错误的编译器?

使用g++并使用-Waggregate-return编译#defineDOCTEST_CHECK(expr)\do{\_Pragma("GCCdiagnosticpush");\_Pragma("GCCdiagnosticignored\"-Waggregate-return\"");\if(Resultfailed=(ExpressionDecomposer()但是手动展开的版本不会产生任何警告:do{_Pragma("GCCdiagnosticpush");_Pragma("GCCdiagnosticignored\"-Waggregate-return\"");if(Result

c++ - 为什么将 return 移动到函数末尾效率较低?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。编辑:删除UB后(好地方,我错过了),时间或多或少相同。将标记版主将其删除。这两个函数是相同的,除了foo在两个分支上的if中都有返回,而goo有一个单个return最后:intfoo(){staticintx=0;if(x){x>2?x=0:++x;returnx-1;}else{x++;returnx-1;}}intgoo(){staticintx=0;if(x){x>2?x=0:++x;}