问题列表 - 第28421页

为什么Stack <T>和Queue <T>用数组实现?

我正在Albahari兄弟的Nutshell中阅读C#4.0,我发现了这个:

堆栈在内部实现,其数组根据需要调整大小,与Queue和List一样.(第288页,第4段)

我不禁想知道为什么.LinkedList提供O(1)头尾插入和删除(这应该适用于堆栈或队列).可调整大小的数组有O(1)缓冲插入(如果我没记错的话),但O(n)最坏的情况(我不确定删除).它可能比链表使用更多的空间(对于大型堆栈/队列).

还有更多吗?双链表实现的缺点是什么?

.net c# queue stack linked-list

27
推荐指数
3
解决办法
4993
查看次数

DDD:在哪里创建实体对象?

我有一定互动三个实体:UserSupportTicketPhoneConversation。当某人打电话请求帮助时,应为用户分配一个SupportTicket,并为被叫人分配一个电话对话,以描述该呼叫。

我的问题是:我应该在哪个实体CreatePhoneSupportTicket()中创建新的SupportTicket和PhoneConversation,将它们彼此关联,最后将SupportTicket与用户关联的方法?

我猜它不能在用户身上,因为这会违反SRP(用户还要执行其他操作)。但是该方法本身不止做一件事,它应该同时创建SupportTicket PhoneConversation。当服务是一种更好的解决方案,然后在实体上放置方法时,是否存在这种情况?谢谢你的帮助!

entities domain-driven-design

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

CVS Diff只输出修改过的文件?

可能吗?cvs diff在项目根目录中运行一个终端,它只输出修改过的文件(比如不在源代码控制中的本地文件和本地修改过的文件 - 主要是我对项目所做的操作).

我正在运行,cvs diff --brief但由于我的项目很大,并且有很多子目录,我仍然有太多的结果 - 它显示了整个层次结构,我只想知道哪些文件与HEAD修订版不同.我希望每个文件输出一行 - 我将使用VimDiff合并.

我正在使用Linux btw.

linux cvs diff

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

将组件安装到GAC上,用于mono/.NET

据我所知,安装适用于.NET的方法如下.

 'gacutil /i nunit.framework.dll' 

对于mono,将目录设置为MONO_PATH正在完成工作.

  • 它是否正确?
  • 使用.NET/windows,程序集安装在哪里?运行gacutil命令后,我在c:\ Windows\Microsoft.NET\GAC_MSIL中看不到任何更改.

.net mono gac

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

多线程random_r比单线程版本慢

以下程序与此处描述的程序基本相同.当我使用两个线程(NTHREADS == 2)运行并编译程序时,我得到以下运行时间:

real        0m14.120s
user        0m25.570s
sys         0m0.050s
Run Code Online (Sandbox Code Playgroud)

当它只用一个线程(NTHREADS == 1)运行时,即使它只使用一个核心,我的运行时间也会明显更好.

real        0m4.705s
user        0m4.660s
sys         0m0.010s
Run Code Online (Sandbox Code Playgroud)

我的系统是双核的,我知道random_r是线程安全的,我很确定它是非阻塞的.当没有random_r运行相同的程序并且使用余弦和正弦的计算作为替换时,双线程版本按预期运行大约1/2.

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

#define NTHREADS 2
#define PRNG_BUFSZ 8
#define ITERATIONS 1000000000

void* thread_run(void* arg) {
    int r1, i, totalIterations = ITERATIONS / NTHREADS;
    for (i = 0; i < totalIterations; i++){
        random_r((struct random_data*)arg, &r1);
    }
    printf("%i\n", r1);
}

int main(int argc, char** argv) {
    struct random_data* rand_states = (struct random_data*)calloc(NTHREADS, sizeof(struct random_data));
    char* rand_statebufs = …
Run Code Online (Sandbox Code Playgroud)

c linux random performance multithreading

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

Python:映射到位

我想知道是否有办法在某些东西上运行地图.map的工作方式是它需要一个iterable并将一个函数应用于该iterable中的每个项目,从而生成一个列表.有没有办法让map修改可迭代对象本身?

python iterable map-function

16
推荐指数
2
解决办法
8533
查看次数

IE9会支持条件评论吗?

我以为我记得读过某个IE9 不会支持他们的地方,但现在搜索后我找不到任何迹象表明这是真的.

对于微软是否会支持IE9中的条件评论,是否有人知道一个明确的声明?

html internet-explorer conditional-comments internet-explorer-9

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

来自dict.fromkeys的不需要的行为

我想使用初始化集合的字典(在Python 2.6中)dict.fromkeys,但结果结构表现奇怪.进一步来说:

>>>> x = {}.fromkeys(range(10), set([]))
>>>> x
{0: set([]), 1: set([]), 2: set([]), 3: set([]), 4: set([]), 5: set([]), 6: set([]), 7: set([]), 8: set([]), 9: set([])}
>>>> x[5].add(3)
>>>> x
{0: set([3]), 1: set([3]), 2: set([3]), 3: set([3]), 4: set([3]), 5: set([3]), 6: set([3]), 7: set([3]), 8: set([3]), 9: set([3])}
Run Code Online (Sandbox Code Playgroud)

我显然不想在所有集合中添加3,仅添加到对应的集合x[5].当然,我可以通过初始化避免问题x没有fromkeys,但我想了解我在这里失踪.

python

20
推荐指数
2
解决办法
3612
查看次数

Java UDP Server会增加内存

我有一个简单的UDP服务器,它创建一个新的线程来处理传入的数据.在通过发送大约100个包/秒进行测试时,我注意到它的内存使用量继续增加.我的代码下面是否有明显的泄漏?

这是服务器的代码.

public class UDPServer
{
    public static void main(String[] args)
    {
        UDPServer server = new UDPServer(15001);
        server.start();
    }

    private int port;

    public UDPServer(int port)
    {
        this.port = port;
    }

    public void start()
    {
        try
        {
            DatagramSocket ss = new DatagramSocket(this.port);

            while(true)
            {   
                byte[] data = new byte[1412];
                DatagramPacket receivePacket = new DatagramPacket(data, data.length);
                ss.receive(receivePacket);
                new DataHandler(receivePacket.getData()).start();
            }

        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

这是处理数据的新线程的代码.目前,run()方法不执行任何操作.

public class DataHandler extends Thread
{
    private byte[] data;

    public DataHandler(byte[] data) …
Run Code Online (Sandbox Code Playgroud)

java multithreading udp

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

Commons AnnotationUtils是否像库一样?(JAVA)

我找不到一个通用实用程序(静态方法)库来查询注释,而不是直接使用注释api并编写我自己的或使用Springs:

通常我不介意使用Springs,但它只是用于处理注释的相当大的依赖.也许Commons Lang有一天会有AnnotationUtils.

人们用什么来查询注释?

java spring annotations apache-commons-lang

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