问题列表 - 第21345页

二叉树在O(1)中得到最小元素

我多次访问二叉树的最小元素.什么实现允许我在恒定时间内访问最小元素,而不是O(log n)

java algorithm complexity-theory binary-tree data-structures

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

在方法调用上生成编译错误的属性?

我想确保一个方法(在我的情况下实际上是一个构造函数)永远不会从代码中显式调用.它应该只在运行时通过反射调用.为此,我想在方法上应用一个属性,如果调用该方法会产生编译器错误,如:

[NotCallable("This method mustn't be called from code")]
public void MyMethod()
{
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以将该方法设为私有,但在这种情况下,我无法通过部分信任上下文中的反射来调用它...

为了完整起见,这里有更多关于我为什么需要这样做的细节:

我正在实施一个可重用的Singleton<T>课程,基于Jon Skeet的文章.到目前为止,这是我的代码:

public static class Singleton<T>
{
    public static T Instance
    {
        get
        {
            return LazyInitializer._instance;
        }
    }

    private class LazyInitializer
    {
        // Explicit static constructor to tell C# compiler
        // not to mark type as beforefieldinit
        static LazyInitializer()
        {
            Debug.WriteLine(string.Format("Initializing singleton instance of type '{0}'", typeof(T).FullName));
        }

        internal static readonly T _instance = (T)Activator.CreateInstance(typeof(T), true);
    }
}
Run Code Online (Sandbox Code Playgroud)

(注意我使用的方法创建T实例Activator.CreateInstance) …

c# attributes compilation

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

比较两个字符串的前三个字符

字符串s1和s2的长度始终为1或更高.

我怎样才能加快速度呢?

int l1 = s1.length();

if (l1 > 3) { l1 = 3; }

if (s2.startsWith(s1.substring(0,l1))) 
{
 // do something..
}
Run Code Online (Sandbox Code Playgroud)

正则表达式可能吗?

java

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

如何异步运行javascript函数,而不使用setTimeout?

它是服务器端的Javascript(rhino引擎),所以setTimeout不可用.如何异步运行一个函数?

javascript parallel-processing rhino

17
推荐指数
2
解决办法
8485
查看次数

如何在Rails中创建"双方"多对多关系?

假设我们有一个摄影网站.任何作者都可以订阅以接收来自任何其他作者的更新.显然,如果作者A订阅作者B并不意味着B订阅了A.所以我们建立模型

class Author < ActiveRecord::Base
  has_many :subscriptions
  has_many :subscribed_by_author, :through => :subscriptions, :source => :subscribed_to
end

class Subscription < ActiveRecord::Base
  belongs_to :author
  belongs_to :subscribed_to, :class_name => "Author", :foreign_key => "subscribed_to"
end
Run Code Online (Sandbox Code Playgroud)

这样我们就可以使用了

  1. some_author.subscribed_by_author - some_author订阅的作者列表.
  2. 对于任何订阅,我们都可以知道两端(谁订阅了谁)

但问题是如何获得仅使用rails(不使用普通SQL)订阅某些作者的人员列表,即得到答案:"谁订阅了some_author?"

问题:Rails中是否有任何能力使双方的关系工作,即不仅写作some_author.subscribed_BY_author而且有some_author_subscribed_TO_author?如果有一个,那么它是什么?

PS明显的解决方案是

  1. 更改数据库设计,添加名为"direction"的列
  2. 每次创建订阅时创建2条记录
  3. 添加到作者模型

    has_many:subscribed_BY_author,:through =>:subscriptions,:source =>:subscribed_to,:conditions =>"direction ='by'"

    has_many:subscribed_TO_author,:through =>:subscriptions,:source =>:subscribed_to,:conditions =>"direction ='to""

但我想知道是否有一个解决方案而不改变数据库设计.

database-design ruby-on-rails has-many belongs-to

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

可以手动编辑PHP会话吗?

PHP会话可以像cookie一样编辑吗?或者它们存储在虚拟主机上?

php

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

非锁定TextWriterTraceListener?

我正在使用TextWriterTraceListener我的跟踪信息输出到日志文件.不幸的是它锁定了日志文件,我无法在应用程序运行时从外部打开它.有什么方法可以做到这一点?

.net c# logging

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

在Web浏览器中运行Java应用程序

我是Java的新手,有一个Java应用程序,包含几个包和许多类.我希望能够在Web浏览器中运行此应用程序.我该怎么做呢?

java embed applet

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

有没有像XOXT的doxygen这样的工具?

有人知道一个工具,可以从未记录的xsl文件中提取代码结构吗?

我知道有XSLTdoc,它可以从xsl文件中提取文档元素来构建html参考页面.但对于未记录的xsl文件,XSLTdoc的输出相当无用.

即使没有记录代码,Doxygen也能够产生有价值的输出.是否存在适用于xsl的工具?

到目前为止我发现的最好的是depgraph,这个小样式表为包含和导入生成依赖图.

我正在寻找的是xsl模板的调用图生成器.

xslt doxygen

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

获取有关Linux上的网络接口更改的通知

当启用或禁用网络接口时,我需要一种方法来通知我的用户空间应用程序.我希望在不诉诸民意的情况下这样做.当网络相关事件发生时,内核是否提供某种钩子来触发回调函数?

c linux networking

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