小编out*_*tis的帖子

嵌套结构和c中的严格别名

请考虑以下代码:

typedef struct {
  int type;
} object_t;

typedef struct {
  object_t object;
  int age;
} person_t;

int age(object_t *object) {
  if (object->type == PERSON) {
    return ((person_t *)object)->age;
  } else {
    return 0;
  }
}
Run Code Online (Sandbox Code Playgroud)

这是合法代码还是违反了C99严格别名规则?请解释为何合法/非法.

c pointer-aliasing

17
推荐指数
1
解决办法
1732
查看次数

字面数字是否可变?

当然,这不会编译:

int &z = 3; // error: invalid initialization of non-const reference ....
Run Code Online (Sandbox Code Playgroud)

这将编译:

const int &z = 3; // OK
Run Code Online (Sandbox Code Playgroud)

现在,考虑一下:

const int y = 3;
int && yrr = y; // const error (as you would expect)
int && yrr = move(y); // const error (as you would expect)
Run Code Online (Sandbox Code Playgroud)

这些下一行确实为我编译.我认为不应该.

int && w = 3;
int && yrr = move(3);
void bar(int && x) {x = 10;}
bar(3);
Run Code Online (Sandbox Code Playgroud)

最后两行不会允许文字3被修改吗?3与const int有什么区别?最后,"修改"文字是否有任何危险?

(g ++ - 4.6(GCC)4.6.2 with …

c++ const rvalue-reference c++11

17
推荐指数
1
解决办法
258
查看次数

为什么我的函数调用应该由setTimeout立即执行?

这是我的问题.我有这个功能来测试代理服务器.

function crawl() {
    var oldstatus = document.getElementById('status').innerHTML;
    document.getElementById('status').innerHTML = oldstatus + "Crawler Started...<br />";
    var url = document.getElementById('url').value;
    var proxys = document.getElementById('proxys').value.replace(/\n/g,',');

    var proxys = proxys.split(",");

    for (proxy in proxys) {
        var proxytimeout = proxy*10000;
        setTimeout(doRequest(url,proxys[proxy]), proxytimeout);
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望以大约10秒的间隔调用'doRequest()'函数,但即使使用setTimeout(),也会立即调用函数.

欢迎任何想法,谢谢.

PS:即使我为'proxytimout'设置了一个任意值,它也没有效果.

javascript loops for-loop settimeout

15
推荐指数
1
解决办法
7914
查看次数

贝塞尔曲线与线段之间的交点

我正在用Python创建一个游戏(带有pygame),这需要我为每个新游戏生成随机但漂亮的"海洋".经过长时间的搜索,我决定采用一种算法,该算法涉及padlib.py中定义的Bezier曲线.我现在需要弄清楚padlib生成的曲线何时与线段相交.

蛮力方法只是使用padlib生成的近似线段集来找到答案.但是,我怀疑可以通过分析找到更好的答案.我只有几十个样条线段 - 搜索它们应该比数千个线段更快.

一点点搜索让我沿着这条路走:Bezier Curve - > Kochanek-Bartels Spline - > Cubic Hermite spline

在最后一页,我发现了这个功能:

p(t)= h 00(t)p 0 + h 10(t)m 0 + h 01(t)p 1 + h 11(t)m 1

其中p(t)实际上是一个点(二维向量),h ij(t)函数是三次多项式,p 0,p 1,m 0m 1是我可以从padlib代码得到的点.

现在,我可以看到我的问题的解决方案是p(t)= u + v*t 1,其中uv是我的线段的结尾.

然而,制定分析解决方案超出了我的范围.这里有人知道现有的解决方案吗?或者可以帮我解决方程式?

python math geometry pygame spline

14
推荐指数
2
解决办法
6407
查看次数

如何在GROUP BY中的多个条件上汇总列

我试图返回一份账户清单,包括余额,结果和收入

Account            Transaction
-------            -----------
AccountID          TransactionID
BankName           AccountID
Locale             Amount
Status
Run Code Online (Sandbox Code Playgroud)

这是我现在拥有的.有人可以解释我哪里错了吗?

select
    a.ACCOUNT_ID,
    a.BANK_NAME,
    a.LOCALE,
    a.STATUS,
    sum(t1.AMOUNT) as BALANCE,
    sum(t2.AMOUNT) as OUTCOME,
    sum(t3.AMOUNT) as INCOME
from ACCOUNT a
left join TRANSACTION t1 on t1.ACCOUNT_ID = a.ACCOUNT_ID
left join TRANSACTION t2 on t2.ACCOUNT_ID = a.ACCOUNT_ID and t2.AMOUNT < 0
left join TRANSACTION t3 on t3.ACCOUNT_ID = a.ACCOUNT_ID and t3.AMOUNT > 0
group by a.ACCOUNT_ID, a.BANK_NAME, a.LOCALE, a.[STATUS]
Run Code Online (Sandbox Code Playgroud)

UPDATE

根据下面的评论更正了t2左连接语法.

我期待的输出有望从问题中显而易见.对于6个帐户,SQL应返回6个帐户及其帐户的余额,收入和结果.

我提供的SQL问题是数字错误!根据评论,我认为问题源于连接多次,这是错误地汇总金额.

sql t-sql

14
推荐指数
2
解决办法
6万
查看次数

这个数组比较问题的最佳算法是什么?

解决以下问题的速度算法最有效的是什么?

给定6个阵列,D1,D2,D3,D4,D5和D6,每个包含6个数字,如:

D1[0] = number              D2[0] = number      ......       D6[0] = number
D1[1] = another number      D2[1] = another number           ....
.....                       ....                ......       ....
D1[5] = yet another number  ....                ......       ....
Run Code Online (Sandbox Code Playgroud)

给定第二个数组ST1,包含1个数字:

ST1[0] = 6
Run Code Online (Sandbox Code Playgroud)

给定第三个数组ans,包含6个数字:

ans[0] = 3, ans[1] = 4, ans[2] = 5, ......ans[5] = 8
Run Code Online (Sandbox Code Playgroud)

使用数组D1,D2,D3,D4,D5和D6的索引,从0到存储在ST1 [0]中的数字减1,在本例6中,从0到6-1,将ans数组与每个D数组进行比较.如果在相同索引处的任何D中找不到一个或多个ans数,则结果应为0,如果在相同索引处的某个D中找到所有ans数,则结果应为1.也就是说,如果某些ans [i]不等于任何D N [i] 则返回0,并且如果每个ans [i]等于某个D N [i] 则返回1 .

到目前为止,我的算法是:
我试图尽可能地保持一切不受欢迎.

EML  := ST1[0]   //number contained in ST1[0]   
EML1 := 0        //start index for the arrays D 

While …
Run Code Online (Sandbox Code Playgroud)

c algorithm optimization cuda

14
推荐指数
2
解决办法
4620
查看次数

i + = ++我在C++ 0x中的未定义行为吗?

我非常确信我已经发现,就C++ 0x而言,这i = ++i 并不是未定义的,但我无法判断是否有i += ++i明确定义的行为 .任何接受者?

c++ undefined-behavior compound-assignment c++11

14
推荐指数
1
解决办法
730
查看次数

用给定数量的因子寻找最小数的算法

什么是最有效的算法,任何人都可以想到,给定一个自然数n,返回最小自然数xn个正除数(包括1和x)?例如,给定4算法应该得到6(除数:1,2,3,6); 即6是具有4个不同因子的最小数字.同样,给定6,算法应该得到12(除数:1,2,3,4,6,12); 即12是具有6个不同因子的最小数字

就真实世界的性能而言,我正在寻找一种可扩展的算法,它可以在一台可以每秒进行10 7次计算的机器上在2秒内给出10 20的答案.

algorithm numbers number-theory

14
推荐指数
1
解决办法
1万
查看次数

如何通过PHP中的引用传递可变函数的参数?

假设有可能,如何在不在PHP中生成警告的情况下通过引用可变参数函数来传递参数?我们不能再在函数调用中使用'&'运算符,否则我会接受(即使它很容易出错,如果编码器忘了它).

启发这一点的是我发掘的旧MySQLi包装类(现在,我只使用PDO).包装器和MySQLi类之间的唯一区别是包装器抛出异常而不是返回FALSE.

class DBException extends RuntimeException {}
...
class MySQLi_throwing extends mysqli {
    ...
    function prepare($query) {
        $stmt = parent::prepare($query);
        if (!$stmt) {
            throw new DBException($this->error, $this->errno);
        }
        return new MySQLi_stmt_throwing($this, $query, $stmt);
    }
}
// I don't remember why I switched from extension to composition, but
// it shouldn't matter for this question.
class MySQLi_stmt_throwing /* extends MySQLi_stmt */ {
    protected $_link, $_query, $_delegate;

    public function __construct($link, $query, $prepared) {
        //parent::__construct($link, $query);
        $this->_link = $link;
        $this->_query = …
Run Code Online (Sandbox Code Playgroud)

php pass-by-reference variadic-functions

13
推荐指数
2
解决办法
2080
查看次数

MYSQL - 按限制分组

有没有一种简单的方法将GROUP BY结果限制在前2位.以下查询返回所有结果.使用"LIMIT 2"仅将整个列表减少到前2个条目.

select distinct(rating_name), 
       id_markets, 
       sum(rating_good) 'good', 
       sum(rating_neutral)'neutral', 
       sum(rating_bad) 'bad' 
 from ratings 
 where rating_year=year(curdate()) and rating_week= week(curdate(),1)
 group by rating_name,id_markets
 order by rating_name, sum(rating_good) 
 desc
Run Code Online (Sandbox Code Playgroud)

结果如下: -

poland  78 48 24 12   <- keep
poland   1 15  5  0   <- keep
poland  23 12  6  3
poland   2  5  0  0
poland   3  0  5  0
poland   4  0  0  5
ireland  1  9  3  0   <- keep
ireland  2  3  0  0   <- keep
ireland  3  0  3 …

mysql group-by limit

13
推荐指数
1
解决办法
1万
查看次数