小编wil*_*lem的帖子

如何实现c#/ .net 3.5字典?

我正在使用一个使用大量字典(最多10 ^ 6个元素)的应用程序,其大小事先未知(尽管我可以在某些情况下猜测).我想知道字典是如何实现的,即如果我不对字典大小进行初步估计,效果有多糟糕.它是否在内部以List的方式使用(自增长)数组?在这种情况下,让字典增长可能会在LOH上留下许多大的未引用数组.

c# dictionary

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

如何检查对象是否已更改?

我有一个对象,其中包含其他对象,其中包含其他对象,包括列表等.此对象是数据绑定到表单,在不同的选项卡中向用户公开了许多字段.我还使用了master-child datagridviews.

任何想法如何检查此对象中是否有任何相对于早期时刻发生了变化?不(手动)添加已更改的变量,在所有(> 100)设置方法中设置为true.

c#

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

如何在PostScript中确定字符串高度?

我需要在postscript中确定字符串的高度(以给定的比例和字体).

/Helvetic-Oblique findfont
10 scalefont
setfont
10 10 1 0 360 arc fill
10 10 moveto (test) dup stringwidth pop 2 div neg 0 rmoveto show
Run Code Online (Sandbox Code Playgroud)

将在(10,10)水平(但尚未垂直)打印测试.(看到这个,我还在10,10处显示一个小圆圈).我还需要确定字符串高度以使文本垂直居中,但我无法找到它的功能.

postscript ghostscript

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

在c#中格式化Int时如何强制使用符号

我想格式化一个整数i(-100 < i < 100),这样:

-99格式为"-99"
9格式为"+09"
-1格式为"-01"
0格式为"+00"

i.ToString("00")
Run Code Online (Sandbox Code Playgroud)

是接近但是当int为正时不添加+号.

有没有办法做到这一点,没有明确区分 i >= 0i < 0

c# tostring

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

如何使用.net确定Windows机器上的ACE或JET?

如何确定(对于运行windows xp/vista/7的机器)是否安装了ACE或JET,因此我可以使用适当的连接字符串连接到访问数据库.

.net c# jet

10
推荐指数
2
解决办法
9487
查看次数

当使用\n作为行终止符时,为什么c#textbox.AppendText()换行符会消失?

我正在使用多行文本框,我得到的行为我无法完全解释.我用

 textbox.AppendText("line \n"); 
Run Code Online (Sandbox Code Playgroud)

将新行附加到文本框.当使用这3次时,我得到了

line 
line 
line
Run Code Online (Sandbox Code Playgroud)

显示在文本框中.现在,我调整文本框的大小.文字变成了

line line line 
Run Code Online (Sandbox Code Playgroud)

也就是说,新线消失了.我知道我应该用

 textbox.AppendText("line "+ Environment.Newline);
Run Code Online (Sandbox Code Playgroud)

所以我知道如何解决这个问题.我想知道为什么,当使用"\n"时,新行最初出现,但在调整大小时消失.

c# textbox multiline

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

Math.Exp的负数很大

在我的机器上,当前的.net版本Math.exp(-1000)返回0.0,这是合理的,因为它是一个太小而不能表示为double的数字.

我可以依赖它来保持其他机器以及将来的.net构建吗?Msdn告诉我Math.exp(Double.NegativeInfinity)返回0.0(因此我希望将来保持这样),但是-1000呢?

c#

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

How to compute (negative binomial) distribution PDF and CDF in C++?

STD has many distributions, that apparently are used to generate pseudo random variables, see e.g. below code that generates and outputs some negative binomial distributed numbers.

Now this might mean that internally, there is code that computes the CDF and or PDF of the negative binomial distribution, i.e. the probability that the random variable takes on a certain value, e.g. 6. Is there a way to output that probability? If yes, how? I know I could run my own code …

c++ random

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

为什么sortedDictionary需要这么多开销?

long b = GC.GetTotalMemory(true);
SortedDictionary<int, int> sd = new SortedDictionary<int, int>();
for (int i = 0; i < 10000; i++)
{
    sd.Add(i, i+1);
}
long a = GC.GetTotalMemory(true);
Console.WriteLine((a - b));            
int reference = sd[10];    
Run Code Online (Sandbox Code Playgroud)

输出(32位):

280108
Run Code Online (Sandbox Code Playgroud)

输出(64位):

480248
Run Code Online (Sandbox Code Playgroud)

单独存储(在阵列中)将需要大约80000.

c# memory-management sorteddictionary

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

在向矢量添加自定义对象时如何启用移动语义?

下面的代码将包含大向量的对象传递到向量中。我希望它表现出色。我需要test在对的调用中强制转换为rvalue push_back吗?我需要告诉编译器如何移动struct实例Test吗?还是全部自动进行?

int main()
{
    struct Test
    {
        std::vector<size_t> vals;
        double sum;
    };
    std::vector<Test> vecOfTest;
    vecOfTest.reserve(100000);

    for (size_t i = 0; i < 100000; i++)
    {
        Test test{};
        test.vals.reserve(i);
        for (size_t j = 0; j < i; j++)
        {
            test.vals.push_back(j);
            test.sum += j;
        }
        vecOfTest.push_back(test);
    }


    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ move-semantics c++11

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