算法、解决方法、其性能的比较 - 页 7

 
Alexandr Andreev:

嗯,简而言之,一个字符的字符串是一个具有0到255的代码的字符,重量为1个字节......而它分配的内存刚好够256个值,257个就放不下了,它就会切换回第一个值。

在任何页面中,每个字符都是一个从0到255的数字...所以我们把数字10000000--它有4个字节的重量,转换成字符串 "10000000",然后为每个字符分配内存,就像一个单独的图表从0到255一样......。总共8个字节。 没有任何地方保存内存。

我明白你的意思。

我们需要准确地计算出这个方案所消耗的内存量。

 
Реter Konow:

你可以开始写第二行。然后是第三个,以此类推...:)

现在我明白为什么创建你的 "构造函数 "需要这么长时间了。
 
Vasiliy Sokolov:


p.s. 哦,对了,你还有一个错误。如果MathRand在第三次调用时返回例如数字1000并写入_3_1000_,那么对于订单号为1000的交易,会发现什么样的medge?

关键是MathRand 只需要用来模拟中位数。

Medjic数字是由用户设定的,它可以绕过一个小于100,000的值(比方说)。

然而,所举的例子中可能有一个错误。你是对的。

谢谢你的观察。一个完整的解决方案应该考虑到这一点。

 
Реter Konow:

我明白你的意思。

我们需要准确地计算出这个解决方案所消耗的内存量。


这也在内部引用上浪费了很多资源,因为对每个字符串字符的访问与对char[x]数组的访问是一样的。在这种情况下,链接是对某一数组元素 的访问。而你就会在那里翻阅大堆的东西。用int来实现会容易得多,也更容易理解......。

至于字符串的长度限制,通常取决于char[x]数组的最大尺寸限制--它也有自己的最大限制。

 

这个人真的没有意识到自己的愚蠢程度。
邓宁-克鲁格效应 在发挥作用。

 

没关系,一个人只需要一种非类型化的语言就没有问题了))

尽管在速度上仍会有差异
 
Vasiliy Sokolov:
p.s. 哦,对了,你还有一个错误。如果MathRand在第三次调用时返回数字1000,并写上_3_1000_,那么在处理序数1000时,会有什么魔法?
它会多 "思考 "一下,解决这个问题:在交易前加一个下划线,在魔术师前加一个符号 :)
 
Alexandr Andreev:

这也在内部引用上浪费了大量的资源,因为访问每个字符串字符与访问数组的char[x]是一样的。在这种情况下,链接是对某一数组元素 的访问。而你就会在那里翻阅大堆的东西。用int来实现会容易得多,也更容易理解......。

至于字符串的长度限制,通常取决于char[x]数组的最大尺寸限制--它有自己的最大限制,也有其他限制。

我们不能用int来实现它,因为我们事先不知道未来交易的数量。我们要么猜测,要么在每次交易时改变数组的大小,来回重写数据。

我们还怎么做呢?

我的解决方案的速度是疯狂的。

内存被消耗了,但不知道效率有多低。我们需要弄清楚。

 
Yury Kulikov:
他将再 "思考 "一下,解决这个问题:他将在交易前加一个下划线,而在魔术师前加一个不同的符号 :)

我想指出的是,与这里的其他人不同,彼得可能有最大的耐心--对单调的代码有一种准备。没有其他方法可以解释他如何设法写出这么多东西

 
Реter Konow:

我们不能用int来实现,因为我们事先不知道未来交易的数量。我们要么猜测,要么就得改变数组的大小,在每次交易中来回覆盖数据。

我们还怎么做呢?

我的解决方案的速度是疯狂的。

内存被消耗了,但不知道效率有多低。我们需要弄清楚。


字符串只有两种变体,要么它有一个最大的尺寸(保留),要么也是分配的内存,在你的例子中,在添加过程中,每次都分配....。所以,这与改变一个 int数组的大小 是一样的。1in1好吧,也许int分配内存的时间比string分配1个字符的内存的时间长10%,如果你比较更多的字符,那么我想int会赢。