gpt4 book ai didi

c# - 如何快速将数组初始化为-1?

转载 作者:行者123 更新时间:2023-11-30 13:48:57 25 4
gpt4 key购买 nike

<分区>

我知道我不应该优化程序的每个点,让我们假设我必须优化数组初始化。

所以我写了一个程序来比较 for loopArray.Clear

using System;
using System.Diagnostics;

namespace TestArraysClear
{
class Program
{
static void Main(string[] args)
{
int[] a = new int[100000];
Stopwatch sw = Stopwatch.StartNew();
for (int i = 0; i < 10; i++)
{
sw.Reset();
sw.Start();
for (int j = 0; j < a.Length; j++)
{
a[j] = 0;
}
sw.Stop();
Console.WriteLine("for " + sw.ElapsedTicks);
sw.Reset();
sw.Start();
Array.Clear(a, 0, a.Length);
sw.Stop();
Console.WriteLine("Array.Clear " + sw.ElapsedTicks);
}
}
}
}

我机器上的输出:

for 1166
Array.Clear 80
for 1136
Array.Clear 91
for 1350
Array.Clear 71
for 1028
Array.Clear 72
for 962
Array.Clear 54
for 1185
Array.Clear 46
for 962
Array.Clear 55
for 1091
Array.Clear 55
for 988
Array.Clear 54
for 1046
Array.Clear 55

所以 Array.Clearfor loop 快大约 20 倍。但是 Array.Clear 初始化为 0。我能以某种方式将数组初始化为 -1 吗?

更新:我不是在寻找一些“极度不安全”的代码。我正在寻找像 Array.Clear 这样简单的东西。我只是想知道 .NET 提供快速 0 初始化,但 .NET 不提供对其他值的初始化。那么为什么 .NET 更喜欢“0”而不是“-1”?

upd 我想重置现有数组。所以我正在寻找 Array.Clear 的模拟,它将数组重置为 -1,而不是 0

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com