小编mon*_*res的帖子

什么是查找关键节点的快速算法?

我正在寻找一种快速的方法/算法来查找图中哪些节点是关键的.

例如,在此图中: 替代文字

节点号2和5是关键的.

我目前的方法是尝试一次从图中删除一个非端点节点,然后检查是否可以从所有其他节点到达整个网络.这种方法显然效率不高.

有什么更好的方法?

algorithm graph

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

java中的通用继承

在c ++中我们可以写:

#include <iostream>

class Base1
{
public: void test() { std::cout << "Base 1" << std::endl; }
};

class Base2
{
    public: void test() { std::cout << "Base 2" << std::endl; }
};

template<class T>
class Derived: public T
{

};

int main()
{
    Derived<Base1> d1;
    Derived<Base2> d2;
    d1.test();
    d2.test();
}
Run Code Online (Sandbox Code Playgroud)

获得模板继承.

可以使用泛型在java中完成相同的操作吗?

谢谢.

编辑:添加有关我的意图的更多信息

在我的场景中,我有两个子类,Sprite和AnimatedSprite(它是Sprite的子类).下一步是PhysicalSprite,它为精灵添加物理,但我希望它能够从Sprite和AnimatedSprite继承.

c++ java generics templates

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

如何在装饰模式中处理'this'引用

我在使用装饰器模式的我的类中遇到了问题.

当内部对象在调用其他对象时使用"this"引用时,会出现问题.这会导致来自接收"this"引用的对象的所有调用直接发送到内部对象,而不会通过外部第一个.

解决这个问题的常用方法是什么?

谢谢.

java design-patterns decorator

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

Dalvik到Java SE通信

我正在计划开发一个Android应用程序,需要后端服务器与应用程序的其他用户同步数据.我打算在unix服务器上运行的标准java中编写这个服务器.

我曾经直接在两个Android设备之间做过这个,在这种情况下,我只是序列化了两端需要发送的所有数据.

但是我怀疑Dalvik序列化的格式与Java SE的格式不兼容.是这样的吗?如果是的话,我的替代方案是什么?我想到的一件事是将原始xml发送到套接字上,但如果有更好的选择,我会很高兴听到它们.

谢谢.

java serialization android dalvik

4
推荐指数
1
解决办法
793
查看次数

这个python全球范围魔术背后的逻辑是什么?

我正在弄乱Python中的范围,并发现了一些我觉得很奇怪的东西:

g = 5

def foo(a):
    if a:
        global g
        g = 10
    else:
        g = 20


print("global g: ",g)

foo(False)
print("global g: ",g) # 20?! What?

foo(True)
print("global g: ",g)
Run Code Online (Sandbox Code Playgroud)

我相信第二次打印应该是"5",因为全局声明从未执行过,但很明显,输出为20(!).

这背后的逻辑是什么?

python scope programming-languages lexical-scope

4
推荐指数
1
解决办法
137
查看次数

在 std::function 中包装委托?

我有一个本机的非托管 C++ 库,我想将它包装在托管 C++ 类中,以提供干净且类型安全的方式来从 C# 访问非托管类,而无需执行 PInvoke。

我试图包装的方法之一具有以下签名:

void Unmanaged::login(
  const std::wstring& email,
  const std::wstring& password,
  std::function<void()> on_success,
  std::function<void(int, const std::wstring&)> on_error);
Run Code Online (Sandbox Code Playgroud)

然而,试图解决这个问题并不容易。显而易见的方法:

public delegate void LoginSuccess();
public delegate void LoginFailed(int, String^);

void Wrapper::login(String ^ email, String ^ password, LoginSuccess ^ onSuccess, LoginFailed ^ onError)
{
    unmanaged->login(convert_to_unmanaged_string(email), convert_to_unmanaged_string(password), [onSuccess]() {onSuccess(); }, [](int code, const std::wstring& msg) {onError(code,convert_to_managed_string(msg))});
}
Run Code Online (Sandbox Code Playgroud)

失败,因为托管 C++ 不允许(本地)lambda(在成员中)。

我知道我可以使用 Marshal::GetFunctionPointerForDelegate 来获取指向委托的本机指针,但我仍然需要提供一个“中间件”来在托管/非托管类型(例如 std::wstring)之间进行转换。

也许有比完全使用托管 C++ 更好的方法?

.net c# c++ clr c++-cli

4
推荐指数
1
解决办法
2454
查看次数

画布矩阵变换

我正在开发一款Android游戏.

我添加了按钮,允许用户在x轴上导航相机并放大和缩小.

为此,我使用以下矩阵代码:

// c is the canvas..
Matrix m = c.getMatrix();
// Make sure that the ground is always at the bottom of the screen
m.setScale(zoom,zoom,0.0f,height);
m.preTranslate(camera_x, 0); // Change offset in x-direction
c.setMatrix(m);
Run Code Online (Sandbox Code Playgroud)

这适用于模拟器,但在我的真实设备上给了我一些奇怪的结果.

谁能告诉我它有什么问题?我发现使用矩阵很棘手,特别是因为Matrix对象有许多选项(pre,post和set).

谢谢

java android matrix

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

F# 中的随机/状态工作流

我正在尝试围绕 F# 中的 mon-、err、工作流进行思考,虽然我认为我对基本的“可能”工作流有相当深入的了解,但尝试实现状态工作流来生成随机数确实让我受益匪浅难倒。

我未完成的尝试可以在这里看到:

let randomInt state =
    let random = System.Random(state)
    // Generate random number and a new state as well
    random.Next(0,1000), random.Next() 

type RandomWF (initState) =
    member this.Bind(rnd,rest) =
        let value, newState = rnd initState
        // How to feed "newState" into "rest"??
        value |> rest
    member this.Return a = a // Should I maybe feed "initState" into the computation here?

RandomWF(0) {
    let! a = randomInt
    let! b = randomInt
    let! c = randomInt
    return [a; b; …
Run Code Online (Sandbox Code Playgroud)

monads f# state state-monad

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

python如何评估这个?

有人可以解释这些结果是如何可能的(python 2.6):

>>> 1<3>2
True
>>> (1<3)>2
False
>>> 1<(3>2)
False
Run Code Online (Sandbox Code Playgroud)

我认为最后两个中的一个与第一个匹配,但显然第一个语句中的运算符是以某种方式链接的?!

python evaluation

0
推荐指数
1
解决办法
168
查看次数