我有这个C#代码,它抛出一个ArgumentOutOfRangeException
,我想知道为什么?
ConcurrentStack<int> intsStack = new ConcurrentStack<int>();
int[] myInts = new int[0];
intsStack.PushRange(myInts);
Run Code Online (Sandbox Code Playgroud)
错误的Message
属性ArgumentOutOfRangeException
:
startIndex参数必须大于或等于零.
参数名称:startIndex
数组是空的但不是null
,我没想到任何异常,只是没有任何东西被添加到堆栈中.这是否是一个合理的例外?
我有蛋白质节点的加权图.我正在编写一个Perl程序,使用Dijkstra算法找到给定节点的最短路径.每种蛋白质(顶点)具有相同的重量.我的程序不会停止迭代,也不会给我任何输出.我不知道造成这个问题的原因.
我的想法是从用户那里获取蛋白质节点的名称,并通过使用给定的蛋白质作为根节点开始搜索最短路径.
%graph = (
'A' => {'B' => 1, 'C' => 5},
'B' => {'C' => 4, 'D' => 2},
'C' => {'A' => 1, 'B' => 3},
'D' => {'C' => 2, 'B' => 3}
);
sub dijkstra {
print "Enter a node\n";
my $root= <>;
my $infinity = "inf";
my %graph= %graph;
my %dist;
my %prev;
############################ the algorithm ####
# first, set all distances to infinity
foreach $n (keys %graph) { $dist{$n} = $infinity; $prev{$n}=$n; } …
Run Code Online (Sandbox Code Playgroud)