gpt4 book ai didi

c++ - 将以下 C++ 代码翻译成 Nim

转载 作者:行者123 更新时间:2023-11-30 03:51:13 25 4
gpt4 key购买 nike

我试图通过转换不同的代码片段来学习 Nim,我偶然发现了一些我以前从未见过的东西。

#include<bits/stdc++.h>
...
for(int t=q&1?u+x:u+x>>1;t>1;)t/=p[++cnt]=sieve[t];
...
sort(p+1,p+cnt+1);

我理解三元运算符是什么以及它是如何工作的,我不太明白变量“t”和“cnt”(都是整数)和数组“​​p”(一个数组整数)。使用增量作为“p”的索引如何工作?

然后是排序函数,我完全放弃了,因为我找不到任何关于它做什么的文档(事实上,它把一个整数添加到数组中显然没有帮助)。

最佳答案

让我们首先让代码更具可读性。一点点空白不会伤害任何人。

for(int t = (q & 1? u + x: u + x >> 1); t > 1;)
{
t /= p[++cnt] = sieve[t];
}

what's going on with the variables "t" and "cnt" (both integers) and the array "p" (an array of integers)

因此 t 被设置为 u + xu + x >> 1 取决于 q & 1 是。然后在循环内,我们将 t 除以 t 索引处的 sieve 的值。我们还将该值分配给 ++cnt 位置的 p 数组。 ++cnt 正在使用 pre increment operatorcnt 的值增加 1,然后将该值用于 p 的索引。

Then there's the sort function, in which I completely gave up because I couldn't find any documentation on what it does

为此,我假设他们使用的是 std::sort()功能。在处理数组时,数组的名称被视为指向数组第一个元素的指针。所以当我们看到 sort(p+1,p+cnt+1); 你可以把它翻译成 sort(one from the beginning of the array, cnt + 1 elements from the beginning of数组);。因此,这将对数组中的所有元素进行排序,从数组开头的一个元素到数组开头的 cnt + 1 个元素之间的一个。

关于c++ - 将以下 C++ 代码翻译成 Nim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31411995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com