草庐IT

random_int

全部标签

memory - 16 位 Int 与 32 位 Int 与 64 位 Int

我一直在想这个问题,因为我从来没有接受过“正规”的计算机科学教育(我在读高中),所以请原谅我对这个问题的无知。在支持标题中列出的三种整数的平台上,哪一种更好,为什么?(我知道每种类型的int在内存中都有不同的长度,但我不确定这意味着什么或它如何影响性能,或者从开发人员的角度来看,哪一种比另一种更有优势)。提前感谢您的帮助。 最佳答案 “更好”是一个主观术语,但某些整数在某些平台上性能更高。例如,在32位计算机中(由32位平台和Win32等术语引用),CPU被优化为一次处理32位值,而32是指处理器的位数CPU可以在一个周期内消耗或生

memory - 16 位 Int 与 32 位 Int 与 64 位 Int

我一直在想这个问题,因为我从来没有接受过“正规”的计算机科学教育(我在读高中),所以请原谅我对这个问题的无知。在支持标题中列出的三种整数的平台上,哪一种更好,为什么?(我知道每种类型的int在内存中都有不同的长度,但我不确定这意味着什么或它如何影响性能,或者从开发人员的角度来看,哪一种比另一种更有优势)。提前感谢您的帮助。 最佳答案 “更好”是一个主观术语,但某些整数在某些平台上性能更高。例如,在32位计算机中(由32位平台和Win32等术语引用),CPU被优化为一次处理32位值,而32是指处理器的位数CPU可以在一个周期内消耗或生

c - malloc(sizeof(int)) vs malloc(sizeof(int *)) vs (int *)malloc(sizeof(int))

我承认这三个都有不同的含义。但是,我不明白这些具体情况适用于哪些特定情况。任何人都可以分享每个例子吗?谢谢。malloc(sizeof(int))malloc(sizeof(int*))(int*)malloc(sizeof(int)) 最佳答案 malloc(sizeof(int))表示您正在从堆中分配空间来存储int。您将保留int所需的尽可能多的字节。这会返回一个你应该转换为int*的值。(指向int的指针。)正如一些人所指出的,C中的典型做法是让隐式转换来处理这个问题。malloc(sizeof(int*))表示您正在从堆中

c - malloc(sizeof(int)) vs malloc(sizeof(int *)) vs (int *)malloc(sizeof(int))

我承认这三个都有不同的含义。但是,我不明白这些具体情况适用于哪些特定情况。任何人都可以分享每个例子吗?谢谢。malloc(sizeof(int))malloc(sizeof(int*))(int*)malloc(sizeof(int)) 最佳答案 malloc(sizeof(int))表示您正在从堆中分配空间来存储int。您将保留int所需的尽可能多的字节。这会返回一个你应该转换为int*的值。(指向int的指针。)正如一些人所指出的,C中的典型做法是让隐式转换来处理这个问题。malloc(sizeof(int*))表示您正在从堆中

c++ - std::random_shuffle 每次产生相同的结果

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Howtomakesurethatstd::random_shufflealwaysproducesadifferentresult?我有一个数组,我想对其进行洗牌,我使用:answerPositionArray[0]=100;answerPositionArray[1]=400;answerPositionArray[2]=800;std::random_shuffle(answerPositionArray,answerPositionArray+2);但是每次我运行我的程序时,都会出现相同的随机播放,40

c++ - std::random_shuffle 每次产生相同的结果

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Howtomakesurethatstd::random_shufflealwaysproducesadifferentresult?我有一个数组,我想对其进行洗牌,我使用:answerPositionArray[0]=100;answerPositionArray[1]=400;answerPositionArray[2]=800;std::random_shuffle(answerPositionArray,answerPositionArray+2);但是每次我运行我的程序时,都会出现相同的随机播放,40

c++ - 在 int32_t 上调用析构函数是否合法?

我刚刚发现下面的代码不是一个有效的C++(它不在~之后的int处解析):intx=5;x.~int();但是,以下代码段确实有效:int32_tx=5;x.~int32_t();这是因为int32_t在我的特定C++实现中是一个typedef,显然可以在任何typedef的类型上调用析构函数。我的问题是:是否需要任何C++实现才能允许第二个片段进行编译?特别是,int32_t是否保证是typedef,如果编译器知道typedeftypedef将某些内容转换为int,是否需要允许销毁typedef? 最佳答案 明确要求int32_t是

c++ - 在 int32_t 上调用析构函数是否合法?

我刚刚发现下面的代码不是一个有效的C++(它不在~之后的int处解析):intx=5;x.~int();但是,以下代码段确实有效:int32_tx=5;x.~int32_t();这是因为int32_t在我的特定C++实现中是一个typedef,显然可以在任何typedef的类型上调用析构函数。我的问题是:是否需要任何C++实现才能允许第二个片段进行编译?特别是,int32_t是否保证是typedef,如果编译器知道typedeftypedef将某些内容转换为int,是否需要允许销毁typedef? 最佳答案 明确要求int32_t是

c++ - 使用 C++11 <random> 高效生成随机数

我试图了解如何使用C++11随机数生成功能。我关心的是性能。假设我们需要生成一系列介于0..k之间的随机整数,但是k每一步都在变化。最好的方法是什么?例子:for(inti=0;idist(0,k);intrandom_number=dist(engine);//dosomethingwithrandomnumber}的分布header提供非常方便。但它们对用户来说是不透明的,所以我无法轻易预测它们的性能。例如,不清楚dist的构造会导致多少(如果有)运行时开销。以上。相反,我可以使用类似的东西std::uniform_real_distributiondist(0.0,1.0);fo

c++ - 使用 C++11 <random> 高效生成随机数

我试图了解如何使用C++11随机数生成功能。我关心的是性能。假设我们需要生成一系列介于0..k之间的随机整数,但是k每一步都在变化。最好的方法是什么?例子:for(inti=0;idist(0,k);intrandom_number=dist(engine);//dosomethingwithrandomnumber}的分布header提供非常方便。但它们对用户来说是不透明的,所以我无法轻易预测它们的性能。例如,不清楚dist的构造会导致多少(如果有)运行时开销。以上。相反,我可以使用类似的东西std::uniform_real_distributiondist(0.0,1.0);fo