小编Ami*_*hum的帖子

了解boost :: disjoint_sets

我需要使用boost :: disjoint_sets,但文档对我来说不清楚.有人可以解释每个模板参数的含义,也许可以给出一个用于创建disjoint_sets的小例子代码吗?

根据请求,我使用disjoint_sets来实现Tarjan的离线最小共同祖先算法,即 - 值类型应该是vertex_descriptor.

c++ boost disjoint-sets

54
推荐指数
2
解决办法
5800
查看次数

使用匹配器组方法时"找不到匹配"

我正在使用Pattern/ Matcher来获取HTTP响应中的响应代码.groupCount返回1,但在尝试获取它时我得到一个例外!知道为什么吗?

这是代码:

//get response code
String firstHeader = reader.readLine();
Pattern responseCodePattern = Pattern.compile("^HTTP/1\\.1 (\\d+) OK$");
System.out.println(firstHeader);
System.out.println(responseCodePattern.matcher(firstHeader).matches());
System.out.println(responseCodePattern.matcher(firstHeader).groupCount());
System.out.println(responseCodePattern.matcher(firstHeader).group(0));
System.out.println(responseCodePattern.matcher(firstHeader).group(1));
responseCode = Integer.parseInt(responseCodePattern.matcher(firstHeader).group(1));
Run Code Online (Sandbox Code Playgroud)

这是输出:

HTTP/1.1 200 OK
true
1
Exception in thread "Thread-0" java.lang.IllegalStateException: No match found
 at java.util.regex.Matcher.group(Unknown Source)
 at cs236369.proxy.Response.<init>(Response.java:27)
 at cs236369.proxy.ProxyServer.start(ProxyServer.java:71)
 at tests.Hw3Tests$1.run(Hw3Tests.java:29)
 at java.lang.Thread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

java regex http-headers

54
推荐指数
3
解决办法
4万
查看次数

vim:选择字符,不包含

假设我在vim中处于某个行位置,我想删除一个特定的字符,比如分号.我会这样做,df;除了它也会删除分号.是否有一个命令会做同样的事情但不包括我正在搜​​索的角色?

vim

45
推荐指数
2
解决办法
9939
查看次数

C++线程池

什么是C++在生产代码中使用的线程池的良好开源实现(类似于boost)?

请提供您自己的示例代码或示例代码使用的链接.

c++ multithreading boost boost-thread threadpool

42
推荐指数
3
解决办法
5万
查看次数

Logger与System.out.println

我正在使用PMD插件进行eclipse,在使用System.out.println()解释时它给出了一个错误:

系统.(out | err).print使用,考虑使用记录器.

我的问题是 - 什么是记录器?它是如何用于打印到屏幕的?为什么更好?

java eclipse pmd java.util.logging

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

更改Logger实例的全局设置

我正在使用java.util.logging.Logger作为我的应用程序的日志记录引擎.每个类使用它自己的记录器,即每个类具有:

private final Logger logger = Logger.getLogger(this.getClass().getName());
Run Code Online (Sandbox Code Playgroud)

我想为我的所有类设置一个日志记录级别,并能够更改它(即,将设置放在一个地方).有没有办法做到这一点,除了使用全局Level变量并手动设置每个记录器?

java logging

41
推荐指数
4
解决办法
6万
查看次数

当我的子类位于不同的包中时,为什么我的子类不能访问其超类的受保护变量?

我有一个抽象类,relation封装database.relation和它的一个子类,Join在包database.operations.relation有一个名为的受保护成员mStructure.

Join:

public Join(final Relation relLeft, final Relation relRight) {
        super();
        mRelLeft = relLeft;
        mRelRight = relRight;
        mStructure = new LinkedList<Header>();
        this.copyStructure(mRelLeft.mStructure);

        for (final Header header :mRelRight.mStructure) {
        if (!mStructure.contains(header)) {
            mStructure.add(header);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在线上

this.copyStructure(mRelLeft.mStructure);
Run Code Online (Sandbox Code Playgroud)

for (final Header header : mRelRight.mStructure) {
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

字段Relation.mStructure不可见

如果我把两个类都放在同一个包中,这样就可以了.有谁能解释这个问题?

java packages protected access-modifiers

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

具有有界队列的Java线程池

我使用java.util.concurrentExecutors类来创建一个固定的线程池运行请求处理程序的Web服务器:

static ExecutorService  newFixedThreadPool(int nThreads) 
Run Code Online (Sandbox Code Playgroud)

而描述是:

创建一个线程池,该线程池重用一组在共享无界队列中运行的固定线程.

但是,我正在寻找线程池实现,它将执行完全相同的操作,除了有队列.有这样的实施吗?或者我是否需要为固定线程池实现自己的包装器?

java multithreading threadpool

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

Vim命令中的选项卡完成

当我在Vim中键入命令时,例如打开文件,我开始输入文件名,我想按Tab键让Vim自动填充名称.但是,当我按Tab键时,vim会^I出于某种原因投入.

如何让Vim标签完整?

vim

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

Java可变参数函数参数

我有一个接受可变数量参数的函数:

foo (Class... types);
Run Code Online (Sandbox Code Playgroud)

其中我得到了一定数量的类类型.接下来,我想要一个功能

bar( ?? )
Run Code Online (Sandbox Code Playgroud)

这也将接受可变数量的参数,并且能够验证变量是相同的数字(这很容易)和相同的类型(硬部分)foo.

我怎样才能做到这一点?

编辑:澄清一下,电话可能是:

foo (String.class, Int.class);
bar ("aaa", 32); // OK!
bar (3); // ERROR!
bar ("aa" , "bb"); //ERROR!
Run Code Online (Sandbox Code Playgroud)

此外,foo和bar是同一类的方法.

java

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