小编gia*_*otb的帖子

具有最小优先级队列的Dijkstra算法

我正在尝试使用优先级队列来实现dijkstra算法,但我无法理解它是如何工作的.我在网上阅读了很多指南,但我根本无法理解这个算法.

我的问题是:每个节点的优先级是什么?我认为它是最小值的传入边缘的权重,但我不确定.这是真的?

第二个问题,当我提取队列的根时,如果该节点不与没有一个被访问节点相邻,那么该如何工作?

graph path dijkstra priority-queue shortest-path

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

在genymotion上启动我的应用程序

我刚刚安装了genymotions,但当我尝试在其上启动我的应用程序时,如本段末尾所述,即使新的(genymotion)正在运行,eclipse也会启动旧的模拟器.我试图更改调试配置,但我能看到的唯一虚拟设备target是旧的模拟器(见下图).

如果在target我的回答中,我收到以下错误:

[2014-01-30 19:50:00 - HelloWorld] No active compatible AVD's or devices found. Relaunch this configuration after connecting a device or starting an AVD.
Run Code Online (Sandbox Code Playgroud)

此外,我按照常见问题解答建议如何使用SDK.我在第二张照片中显示了我的配置.

照片中显示的设备都是用AVD制作的,没有genymotion,也没有正在运行的设备: 在此输入图像描述

在这里我把genymotion的配置: 在此输入图像描述

我怎么能说eclipse启动genymotion模拟器而不是AVD?

eclipse android emulation android-emulator genymotion

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

如何通过引用传递对象到构造函数

我想通过引用将对象传递给Contructor,但是我遇到了问题,因为我不知道如何将它绑定到类的变量.

在这里,我发布了一些代码,错误上升了.

class ShortestPath{
    public:
        ShortestPath(Graph& graph): graph(graph){};[...]
    private:
        Graph *graph; 
};
Run Code Online (Sandbox Code Playgroud)

在这种情况下,错误上升是:

cannot convert `Graph' to `Graph*' in initialization 
Run Code Online (Sandbox Code Playgroud)

如果我写

ShortestPath(Graph& graph): *graph(graph){};[...]
Run Code Online (Sandbox Code Playgroud)

错误是

expected identifier before '*' token 
Run Code Online (Sandbox Code Playgroud)

当我调用构造函数时,我应该这样调用吗?最短路径(图表);

c++ constructor reference function object

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

好奇心与c中的向量

我在C中写了一个小程序,我预计向量会出错.

#include <stdlib.h>
#include <stdio.h>

main(){
       int vet[0];
       vet[0] = 1;
       vet[1] = 2;
       vet[2] = 2;
       vet[3] = 2;
       vet[4] = 2;
       vet[5] = 2;
       vet[6] = 2;
       vet[7] = 2;
       int x;
       for(x=0;x<19;x++) printf("%d\n", vet[x]);


       system("pause");
}
Run Code Online (Sandbox Code Playgroud)

在编写这段代码之前,我认为要在向量中添加一个元素,而且他的大小,我应该调用该malloc函数,但后来我发现,如果没有该malloc函数,代码也能正常工作.所以我的问题是,为什么我应该使用malloc函数,如果在这种情况下它没用?为什么在初始化时我应该写一个向量的维度?

c vector

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

.split("|")中的运行时错误

我在那行使用那个方法:

f.getCmbAttori().getSelectedItem().toString().split("|")
Run Code Online (Sandbox Code Playgroud)

输入如"13 | Il Signore degli Anelli"并输入:

f.getCmbAttori().getSelectedItem().toString().split("|")[0] = "13"
f.getCmbAttori().getSelectedItem().toString().split("|")[1] = "Il Signore degli Anelli"
Run Code Online (Sandbox Code Playgroud)

它返回一个数组,其中每个字符都是单独的,如下所示:

    f.getCmbAttori().getSelectedItem().toString().split("|")[0] = ""
    f.getCmbAttori().getSelectedItem().toString().split("|")[1] = "1"
    f.getCmbAttori().getSelectedItem().toString().split("|")[2] = "3"
    f.getCmbAttori().getSelectedItem().toString().split("|")[3] = "|"
    f.getCmbAttori().getSelectedItem().toString().split("|")[4] = "I"
    f.getCmbAttori().getSelectedItem().toString().split("|")[5] = "l"
[...]

    f.getCmbAttori().getSelectedItem().toString().split("|")[25] = "l"
    f.getCmbAttori().getSelectedItem().toString().split("|")[26] = "i"
Run Code Online (Sandbox Code Playgroud)

怎么可能呢?我是以错误的方式打算这种方法吗?这里是我使用的一段代码:

PreparedStatement stmSql = null;
                 int risultato = 0;                  
                 stmSql = f.conn.prepareStatement("insert into recita (CodAttore, CodFilm) values (?, ?)");
                 stmSql.setInt(1, Integer.parseInt(f.getCmbAttori().getSelectedItem().toString().split("|")[1]));
                 stmSql.setInt(2, Integer.parseInt(f.getCmbFilmRecita().getSelectedItem().toString().split("|")[1]));
                 risultato = stmSql.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

java arrays string split runtime-error

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