草庐IT

rand_number

全部标签

c++ - QString::number() 'f' 格式没有尾随零

我想将数字转换为具有3位有效数字的QString。QString::number(myNumber,'f',3);完成了这项工作,但仍然是尾随零。如何在没有它们的情况下使用它。我也试过'g'并且不应该保留那些零:QString::number(myNumber,'g',3);但是例如472.76被转换为473。这让我很惊讶。'g'选项为什么会这样?但是我对'f'格式感兴趣。所以主要问题是如何用'f'做到这一点而没有尾随零?输入->期望的输出472.76->472.760.0766861->0.077180.00001->180 最佳答案

c++ - std::uniform_real_distribution 和 rand()

为什么std::uniform_real_distribution比rand()作为随机数生成器更好?有人可以举个例子吗? 最佳答案 首先,应该明确提出的比较是荒谬的。uniform_real_distribution不是随机数生成器。您不能从uniform_real_distribution生成随机数没有将随机数生成器传递给它的operator().uniform_real_distribution将该随机数生成器的输出“整形”为均匀的实数分布。您可以将各种随机数生成器插入到一个发行版中。我不认为这是一个合适的比较,所以我将比较u

c++ - int num = *(int *)number;这是做什么的?

我在看一些c++代码,我看到了这个:intnum=*(int*)number;我以前从未见过这个?它在一个这样标记的函数中:void*customer(void*number){}那还能做什么?有没有其他的方式来展示这个?谢谢,这不是作业顺便说一句我只是对它的作用感到困惑? 最佳答案 (int*)部分将变量number转换为指向int的指针,然后前面的*将其取消引用为int。 关于c++-intnum=*(int*)number;这是做什么的?,我们在StackOverflow上找到一个

c++ - 哪个更快? "vector of structs"还是 "a number of vectors"?

解决方案1:如果我有类似的类(class),classcar{public:inta;stringb;boolc;};我可以构建一个包含200辆汽车的vector:std::vectorallcas;allcars.resize(200)在运行时,我只是这样做:this_car=allcars[102];然后....解决方案2:我有std::vectora;a.resize(200);std::vectorb;b.resize(200);std::vectorc;c.resize(200);this_car_a=a[102];this_car_b=b[102];this_car_c=c

时间:2019-05-01 标签:c++: dynamic number of nested for loops (without recursion)

我正在编写一个遍历n位数字的每个排列的代码段。例如,如果n=3,我想遍历以下每个元素:0,0,0...0,1,0...1,0,0...2、3、4...9、9、9使用嵌套的for循环很容易编写代码:for(digit10to9)for(digit20to9)for(digit30to9)但我想将其概括为n位数。例如,如果n=10,我现在需要10个嵌套的for循环。我已经考虑过这一点,并意识到可以使用递归来解决这个问题(深度优先搜索一棵树,每个节点有10个子节点,从0到10,并在深度n处停止)。但我的目标是高性能,所以我不想因为开销而使用递归。我还有什么其他选择?

c++ - 杀死魔数(Magic Number): "const int" vs "constexpr int" (or is there no difference in the end)

假设我有一个魔数(MagicNumber)我想摆脱...//whatever.cppfor(inti=0;i我可以通过两种方式杀死它:无论是constintSOMETHING_SOMETHING_MEANING_OF_LIFE=42或使用constexprintSOMETHING_SOMETHING_MEANING_OF_LIFE=42在源.cpp文件中。在这种情况下,两者之间是否有任何有意义的区别(我记得编译器推断-在任何一种情况下-值都不会改变,因此42实际上在结果循环中是硬编码的/展开循环/任何机器代码)还是归结为个人喜好?在一个相关问题中:如果magicnumber(以及替换它

c++ - 我应该使用 rand() 还是 rand_r()?

我正在尝试在C++中获取一个随机数,并且我正在使用rand()。这就是cpplint说:Considerusingrand_r(...)insteadofrand(...)forimprovedthreadsafety.我正在切换到rand_r这就是cppcheck说:Obsoletefunction'rand_r'called.Itisrecommendedtousethefunction'rand'instead.谁是对的? 最佳答案 两者都有。rand()函数由C标准定义,自1989/1990年第一个此类标准以来一直如此;它通

c++ - 为什么 C++ stdlib rand() 函数跨平台为同一个种子提供不同的值?

我知道rand()函数会根据给定的种子生成伪随机数,并且在给定的平台上,它总是会从同一个种子生成相同的数字序列,我想知道的是为什么它在使用相同库的平台之间给出不同的序列?IE。rand()是如何实现的? 最佳答案 C++标准没有指定rand()函数使用什么算法。功能由在您的系统上编写标准库的人定义:Microsoft负责VisualStudio附带的标准库,GNU人员负责GCC打包的标准库。您的编译器正在选择从何处获取其库,因此对于同一系统上的不同编译器,您可能有不同版本的标准库。要点保持不变:规范保证了哪些功能可用以及它们做什么;

c++ - rand() 和 random() 函数有什么区别?

有一次,我的老师教我使用randomize()和random()在C++Builder中生成伪随机数的函数。现在我更喜欢在VS2012中工作,但是当我尝试在那里使用这些函数时,它说“找不到标识符”,即使我添加了#include.经过一段时间的谷歌搜索,我发现还有rand()和srand()功能。它们之间有什么区别,哪个更好用? 最佳答案 randomize()和random()不是标准库的一部分。也许你的老师用这些名字写了函数供你在类里面使用,或者你的意思是random()和srandom()它们是POSIX的一部分,在Window

c++ - 如何使用 rand_r 以及如何以线程安全的方式使用它?

我正在尝试学习如何使用rand_r,在阅读了thisquestion之后我仍然有点困惑,有人可以看看并指出我错过了什么吗?据我了解,rand_r需要一个指向某个值(或具有某些初始值的内存)的指针,并在每次调用它时使用它来生成新数字。每个调用rand_r的线程都应该为它提供一个唯一的指针(或一block内存),以获取不同线程之间的“实际随机”数。这就是为什么:intglobalSeed;//thread1rand_r(&globalSeed);//thread2rand_r(&globalSeed);是错误的使用方式。如果我有intseed1,seed2;//thread1rand_r(