小编Eva*_*ose的帖子

结构化分配和"正常"分配之间有什么区别?

我在python 2.7.6 REPL中玩,并遇到了这种行为.

>>> x = -10
>>> y = -10
>>> x is y
False
>>> x, y = [-10, -10]
>>> x is y
True
Run Code Online (Sandbox Code Playgroud)

看起来,析构化赋值为等效值返回相同的引用.为什么是这样?

python

21
推荐指数
2
解决办法
2724
查看次数

math.sqrt()和math.pow()中的不准确性来自大数字?

如果取一个数字,取其平方根,删除小数,然后将其提高到二次幂,结果应始终小于或等于原始数.

这似乎在python中都适用,直到你99999999999999975425出于某种原因尝试它.

import math

def check(n):
    assert math.pow(math.floor(math.sqrt(n)), 2) <= n

check(99999999999999975424)  # No exception.
check(99999999999999975425)  # Throws AssertionError.
Run Code Online (Sandbox Code Playgroud)

它看起来像math.pow(math.floor(math.sqrt(99999999999999975425)), 2)回报1e+20.

我认为这与我们在python中存储值的方式有关...与浮点运算相关的东西,但我不能具体说明这会如何影响这种情况.

python sqrt pow

11
推荐指数
2
解决办法
1076
查看次数

Rust中struct结构文字中的".."语法是什么?

来自std::default::Default文档:

#[derive(Default)]
struct SomeOptions {
    foo: i32,
    bar: f32,
}

fn main() {
    let options = SomeOptions { foo: 42, ..Default::default() };
}
Run Code Online (Sandbox Code Playgroud)

..返回值的前缀Default::default()是什么?为什么这里需要它?它几乎看起来像是一个传播运营商,但我不确定.我理解..Default::default()正在做什么 - 用默认值填充剩余的struct参数SomeOptions,但不是如何..工作.这个运营商的名字是什么?

default operator-keyword rust

7
推荐指数
1
解决办法
2129
查看次数

为什么我不能使用operator <on'std :: deque'?

在我的代码库上运行cppcheck并收到以下错误:

Dangerous iterator comparison using operator< on 'std::deque'.
Run Code Online (Sandbox Code Playgroud)

但是deque的迭代器是一个随机访问迭代器,随机访问迭代器支持不等式运算符.什么给出了什么?

例:

#include <deque>

int main()
{
    std::deque<int> d;
    std::deque<int>::iterator di1 = d.begin();
    std::deque<int>::iterator di2 = d.end();

    if (di1 < di2)
    {
        // (error) Dangerous iterator comparison using operator< on 'std::deque'.
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编辑:此错误已通过cppcheck ticket#5926提交并修复.

c++ inequality deque

5
推荐指数
1
解决办法
228
查看次数

如何选择缓冲区大小?

我正在阅读TLPI(Linux编程接口),他们似乎使用1024作为文件操作的标准缓冲区大小.我很奇怪为什么选择这个尺码.是否有"最佳"文件大小?

详细说明并希望得到一些进一步的见解:在哪些情况下使用512或2048字节会破坏某些东西?我假设如果1024是安全的,512也是安全的,但只是更慢,因为你必须以两倍的步数移动数据.因此,如果我的想法是正确的,缓冲区大小越大,操作越快,但这也会增加失败的可能性?

c linux

5
推荐指数
2
解决办法
122
查看次数

标签 统计

python ×2

c ×1

c++ ×1

default ×1

deque ×1

inequality ×1

linux ×1

operator-keyword ×1

pow ×1

rust ×1

sqrt ×1