小编atp*_*atp的帖子

C++虚函数实现?

如果我有C++:

class A {
    private: virtual int myfunction(void) {return 1;}
}

class B: public A {
    private: virtual int myfunction(void) {return 2;}
}
Run Code Online (Sandbox Code Playgroud)

然后,如果我virtualmyfunction定义中删除class B,这是否意味着如果我有一个class C基础class B,我不能覆盖,myfunction因为它将静态编译?

另外,我很困惑当你在公共场所切换时会发生什么,而在这里私密.如果我将myfunctionin 的定义更改class B为public(并且class A保持私有),这是否是我不应该做的某种严重错误?我认为虚拟功能需要保持相同的类型,这是非法的,但请告诉我是否错了.

谢谢!

c++ virtual inheritance

10
推荐指数
2
解决办法
3万
查看次数

HTML5 Canvas像素大小是否取决于画布大小?

我用HTML5画布绘制简单的线条:

context = $('canvas')[0].getContext('2d');
context.moveTo(150, 20);
context.lineTo(300, 20);
context.stroke();
Run Code Online (Sandbox Code Playgroud)

当我的画布CSS改变时:

canvas {
    width: 500px;
    height: 500px;
}
Run Code Online (Sandbox Code Playgroud)

canvas {
    width: 1000px;
    height: 1000px;
}
Run Code Online (Sandbox Code Playgroud)

行程宽度和高度也加倍!是什么赋予了?

html5 canvas

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

什么是优秀的人工智能期刊?

我对人工智能感兴趣,并希望跟上最新的人工智能研究.有人可以推荐我应该阅读的前2-3种AI期刊吗?

artificial-intelligence

9
推荐指数
1
解决办法
3583
查看次数

只要启发式是可以接受的,A*是否与负权重一起使用?

这似乎是正确的,但我在网上找不到任何人说这是,所以我想确定.如果您同意,请告诉我,如果是,为什么.理想情况下是指向纸张的链接,或者,如果您不同意,则为反例.

我们G是一个有向图有一些负面的边缘.我们想要运行A*G.

首先,如果G从源头到达并且达到目标的负周期,则没有可接受的启发式,因为不可能低估达到目标的成本,因为它是-?.

但是,如果没有这样的循环,可能会有一些可接受的启发式.特别是,所有负边缘的总和将始终低估达到目标的成本.

我的印象是,在这种情况下,A*可以正常工作.

PS我可以在图上运行Bellman-Ford,检测负循环,如果没有,重新加权以消除负边缘.但是,如果我知道没有负循环,我可以跳过它并运行A*.


这是非常错误的.顶点的成本是启发式和到目前为止构建的路径的总和......而启发式低估了达到目标的成本,启发式和到目前为止所采用的路径的总和可能不是.千里马culpa.

似乎用一个低估了达到目标的成本的函数对开放集进行排序,而通过一个给定的顶点可能会工作......如果一个人使用<sum of negative edges in the graph>这样的函数,它看起来像退化为图遍历.

algorithm graph-theory

9
推荐指数
2
解决办法
3630
查看次数

如何在YUI 3中获取选择框值?

在YUI 3中,我有一个节点是我的选择框:

Y.get('#regionSelect');
Run Code Online (Sandbox Code Playgroud)

如何获取<option>当前选中的值(即使有多个?)另外,是否有一个教程明确告诉我如何执行此操作(我不想序列化整个表单)?

yui yui3

8
推荐指数
3
解决办法
2万
查看次数

Python:用密钥压缩字典

我有:

list_nums = [1,18]
list_chars = ['a','d']
Run Code Online (Sandbox Code Playgroud)

我想要:

list_num_chars = [{'num':1, 'char':'a'},
                  {'num':18, 'char':'d'}]
Run Code Online (Sandbox Code Playgroud)

是否有比以下更优雅的解决方案:

list_num_chars = [{'num':a, 'char':b} for a,b in zip(list_nums, list_chars)]
Run Code Online (Sandbox Code Playgroud)

python

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

python多处理池重试

有没有办法重新发送一个数据进行处理,如果原始计算失败,使用一个简单的池?

import random
from multiprocessing import Pool

def f(x):
   if random.getrandbits(1):
       raise ValueError("Retry this computation")
   return x*x

p = Pool(5)
# If one of these f(x) calls fails, retry it with another (or same) process
p.map(f, [1,2,3])
Run Code Online (Sandbox Code Playgroud)

python multiprocessing

8
推荐指数
2
解决办法
2727
查看次数

PHP匿名函数与array_walk

我正在尝试使用带有匿名函数的array_walk,但我总是得到错误

 // Parse error: syntax error, unexpected T_FUNCTION in ... on line X
 if(!empty($myArray)) {
   array_walk($myArray, function(&$value, $key){ // Line X
     $value = '"'.$value.'"'; // Add quotes
   });
 }
Run Code Online (Sandbox Code Playgroud)

周围的文件语法是正确的.有什么想法吗?

php anonymous-function

7
推荐指数
2
解决办法
7742
查看次数

条件类创建(Python)

从教程:"类定义是一个可执行语句."

以下是脚本中推荐的内容吗?

my_switch = False
if my_switch:
    class Hello:
        def __init__(self):
            self.greeting = "Hello!"

else:
    class Hello:
        def __init__(self):
            self.greeting = "Salut!"
Run Code Online (Sandbox Code Playgroud)

python

7
推荐指数
5
解决办法
6230
查看次数

MySQL有效地存储无向图边

我想存储无向图边(例如,对于朋友).要存储和检索节点的所有朋友a,可以使用:

每个边创建两行,每个节点在一列上查询:

+--------------------------+
| id | from_node | to_node |
+--------------------------+
| 1  |  a        |  b      |
| 2  |  b        |  a      |
+--------------------------+
SELECT * FROM `x` WHERE from_node = a
Run Code Online (Sandbox Code Playgroud)

每条边创建一行,使用OR:

+--------------------------+
| id | node_a    | node_b  |
+--------------------------+
| 1  |  a        |  b      |
+--------------------------+
SELECT * FROM `y` WHERE node_a = a OR node_b = a
Run Code Online (Sandbox Code Playgroud)

这样可以提高查找效率?

  • 表中x包含2n行,索引from_nodeto_node,以及在一列上查找
  • 表中y …

mysql graph

7
推荐指数
2
解决办法
2520
查看次数