请考虑以下代码:
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严格别名规则?请解释为何合法/非法.
当然,这不会编译:
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 …
这是我的问题.我有这个功能来测试代理服务器.
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'设置了一个任意值,它也没有效果.
我正在用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 0和m 1是我可以从padlib代码得到的点.
现在,我可以看到我的问题的解决方案是p(t)= u + v*t 1,其中u和v是我的线段的结尾.
然而,制定分析解决方案超出了我的范围.这里有人知道现有的解决方案吗?或者可以帮我解决方程式?
我试图返回一份账户清单,包括余额,结果和收入
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问题是数字错误!根据评论,我认为问题源于连接多次,这是错误地汇总金额.
解决以下问题的速度算法最有效的是什么?
给定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++ 0x而言,这i = ++i 并不是未定义的,但我无法判断是否有i += ++i明确定义的行为 .任何接受者?
什么是最有效的算法,任何人都可以想到,给定一个自然数n,返回最小自然数x与n个正除数(包括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的答案.
假设有可能,如何在不在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) 有没有一种简单的方法将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 …