小编And*_*ēza的帖子

Java优先级队列应该如何工作?

简短的故事,我正在实现一个图表,现​​在我正在研究Kruskal,我需要一个优先级队列.我对优先级队列的定义是具有最小密钥的元素将首先出现?这是错的吗?因为当我在队列中插入加权边(或数字)时,它们不会最终排序.

PriorityQueue<Integer> tja = new PriorityQueue<Integer>(); 
tja.add(55);
tja.add(99); 
tja.add(1); 
tja.add(102);
tja.add(54);
tja.add(51);
System.out.println(tja);
Run Code Online (Sandbox Code Playgroud)

那将打印出来; [1,54,51,102,99,55].这不像我希望的那样排序!是的,我创建了一个进入优先级队列的comperator,该队列从edge对象中提取数字并根据该int进行比较.所以这应该有用,或者我只是完全误解了这个数据结构如何工作的整个概念?

java priority-queue data-structures

5
推荐指数
2
解决办法
9047
查看次数

在编译/调试时,VS是否应该删除bin\debug区域中的现有文件?

Q1 - 在进行编译/调试时VS是否应该删除bin\debug区域中的现有文件?(适用于VS2008)

如果没有,那么请问:

Q2 - 我的winforms检查是否存在sqlite.db3文件并在需要时(以编程方式)创建它.如果我想要的行为是我所做的每个编译/调试都是为了清除目标调试区域,那么程序将运行构建数据库文件的代码,我该如何组织它?

谢谢

debugging visual-studio-2008 visual-studio

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

朋友应该在嵌套类中传递吗?

class private_object
{
private:
  struct make_public;
  friend struct make_public;
  static void method1() {}
};

struct private_object::make_public
{
  class nested_outer
  {
    void callFromOuter() 
    { private_object::method1(); }   // Should this be an error?

    class nested_inner
    {
      void callFromInner() 
      { private_object::method1(); } // How about this one?
    };
  };
};
Run Code Online (Sandbox Code Playgroud)

当我试图将一个开源项目移植到borland下编译时,这个友谊问题出现了.根据这里这里的parashift和两个半相关的问题,上面的例子不应该是有效的.

然而,在七个不同的编译器1上测试之后,只有borland和dmc抱怨.这种行为让我感到惊讶,因为我并不期望友谊在嵌套类中是可传递的.

所以这提出了几个问题:

  • 什么是正确的行为?我猜它是大多数编译器都接受的.
  • 如果这是正确的行为,为什么这个友谊传递的实例可以呢?
  • 如果这是正确的,那么这也意味着标准的变化.在标准中允许这样做的原因是什么?
  • 对于拒绝此代码的编译器,什么是适当的解决方法?请记住,实际项目可能包含相当深的嵌套,因此我正在寻找一种半可扩展的解决方案.

1.测试mingw-gcc 4.5.2,clang,borland c ++ builder2007,数字火星,开放式watcom,visualc2010和comeau在线

c++ standards-compliance friend

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

如何解释Java中的浅拷贝与按值传递?

根据我对Java的理解,一切都是通过价值传递的.然而,当你开始谈论包含其他对象的对象时,事情会变得有趣,我希望能够更好地沟通,并确保我也完全理解.所以我的观点是,实际上只复制了对象中的基元,而另一方面它包含的任何对象......这些对象的值不会被复制,而只是这些对象的副本.

所以,如果我们与这些成员有一些对象

public class SomeObject {
   private String name;
   private String address;
   private  List<String> friends;

   public SomeObject(String name, String address, List<String> friends) {
      this.name = name;
      this.address = address;
      this.friends = friends;
   }
}
Run Code Online (Sandbox Code Playgroud)

我们这样做了:

List<String> friendsList = new ArrayList<String>();
        friendsList.add("bob");
        friendsList.add("joe");

        SomeObject so1 = new SomeObject("mike", "123 street", friendsList);

        friendsList.add("zoe");
        friendsList.add("rick");
        SomeObject so2 = new SomeObject("david", "300 ave", friendsList);

        System.out.println(so1.getName() + " " + so1.getAddress());
        for (String friend : so1.getFriends()) {
            System.out.println(friend);
        }

        System.out.println(so2.getName() + " " + so2.getAddress()); …
Run Code Online (Sandbox Code Playgroud)

java

4
推荐指数
2
解决办法
588
查看次数

什么时候我们应该使用RTLD_DEEPBIND?

我正在尝试链接中提到的问题:https://sourceware.org/ml/libc-alpha/2009-06/msg00168.html

我在代码中做了一些修改,如下所述:

>> Cat libdep.c
#include <stdio.h>

int duplicate = 'u';

int get_duplicate() {
    printf("libdep sees duplicate as: %c\n", duplicate);
    printf("libdep sees duplicate address as: %x\n", &duplicate);
    return duplicate;
}
--------------------------------------------------------------------------------------

>> Cat  dynamic.c

#include <stdio.h>

  extern int duplicate;

  int run() {
      duplicate = 'd';
      printf("dynamic sees duplicate from libdep as:  %c\n", duplicate);
      printf("dynamic sees duplicate address as: %x\n", &duplicate);

      printf("but libdep sees duplicate from main as: %c\n", get_duplicate());
      return 0;
  }
-------------------------------------------------------------------------------------------------

Cat main.c

#include <stdio.h> …
Run Code Online (Sandbox Code Playgroud)

c c++ gcc dlopen

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

如何使用 R 中的 lubridate 将周和年列转换为日期列

我一直在关注 Hadley Wickham 的《R for data science》一书。他对使用 lubridate 有很多建议,但很多函数都假设您有年、月和日。当您只有年和周时,如何使用 lubridate 转换为日期格式?

data.frame(
    year = c(2015, 2015, 2016, 2016, 2016, 2016, 2016),
    week = c(1, 20, 35, 49, 8, 4, 53)
  )

#year   week
#2015    1
#2015    20
#2016   35  
#2016   49  
#2016   8   
#2016   4   
#2016   53
Run Code Online (Sandbox Code Playgroud)

r lubridate dplyr

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

用特定的类刮取所有div标签的内容

我正在从某个特定的div类中的网站上抓取所有文本。在下面的示例中,我想提取类“ a”的div中的所有内容。

site <- "<div class='a'>Hello, world</div>
  <div class='b'>Good morning, world</div>
  <div class='a'>Good afternoon, world</div>"
Run Code Online (Sandbox Code Playgroud)

我想要的输出是...

"Hello, world"
"Good afternoon, world"
Run Code Online (Sandbox Code Playgroud)

下面的代码从每个div中提取文本,但是我不知道如何仅包括class =“ a”。

library(tidyverse)
library(rvest)

site %>% 
  read_html() %>% 
  html_nodes("div") %>% 
  html_text()

# [1] "Hello, world"          "Good morning, world"   "Good afternoon, world"
Run Code Online (Sandbox Code Playgroud)

使用Python的BeautifulSoup,它看起来像site.find_all("div", class_="a")

r rvest

4
推荐指数
2
解决办法
4106
查看次数

这个Excel公式应该做什么?

我有一个电子表格,我应该修复破碎的公式.有谁知道这意味着什么?

=#REF!A33
Run Code Online (Sandbox Code Playgroud)

excel-formula

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

否则如果循环在R中运行得非常慢

我正在进行一项研究项目,研究使人更有可能投票的因素,重点是人们离开投票站的距离.我是数百万人的完整选民登记和选民历史.有几种方式可以让某人投票(亲自,缺席,早期或临时)或不投票(未注册,注册但未投票,或没有资格投票).我的数据附有一栏(29),表明某人如何在某次选举中投票.NULL表示未注册,V表示亲自等.

对于回归分析,我想为每个选民类型创建一个不同的列(1表示是,0表示否,列号68-74)和另一个1/0列(数字75)表示是否有人投票.我在下面写的代码应该可以解决这个问题,但它在我的计算机上运行速度非常慢,甚至在一小时后也无法进入第1000行.除速度外,它完美无缺.我已被批准使用我大学的超级计算机*,但我想找出一个更快的算法.我的笔记本电脑和超级计算机上都有R和STATA,并且很乐意使用它们.

dcv.new <- read.csv("VoterHist.csv", header=TRUE)
# I previously set columns 68-75 to default to 0
for(i in 1:nrow(dcv.new))
{
  if(is.na(dcv.new[i,29]))
  {
    dcv.new[i,69] <- 1
  }
  else if(dcv.new[i,29]=="V")
  {
    dcv.new[i,68] <- 1
    dcv.new[i,75] <- 1
  }
  else if(dcv.new[i,29]=="A")
  {
    dcv.new[i,70] <- 1
    dcv.new[i,75] <- 1
  }
  else if(dcv.new[i,29]=="N")
  {
    dcv.new[i,71] <- 1
  }
  else if(dcv.new[i,29]=="E")
  {
    dcv.new[i,72] <- 1
  }
  else if(dcv.new[i,29]=="Y")
  {
    dcv.new[i,73] <- 1
  }
  else if(dcv.new[i,29]=="P")
  {
    dcv.new[i,74] <- 1
    dcv.new[i,75] <- 1
  }
  else if(dcv.new[i,29]=="X")
  { …
Run Code Online (Sandbox Code Playgroud)

r

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

输入键在命令模式下的含义是什么?

到目前为止,我总是猛拉或用y2y或删除2行d2d.

我发现你也可以做y1CR(CR是enter).除了数字1出现在命令上,它实际上猛拉了行.

它也显示在底部2 lines yanked,不会发生使用y2y.

我找不到任何关于vim帮助的提及.这引出了两个问题:

  1. 除了使用执行这些命令时的额外行之外还有其他区别enter吗?
  2. enter从更广泛的意义上说,在vim中应该是什么意思?

编辑:虽然有很多的答案,没有一个人如果地址y2jy1<CR>真的等同于每一种情况下,如果是这样,为什么2 lines yanked只在底部会出现只为<CR>命令.

vim

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