gpt4 book ai didi

c# - 将数组中的所有元素初始化为 NaN 的最快方法是什么?

转载 作者:行者123 更新时间:2023-11-30 22:47:14 29 4
gpt4 key购买 nike

在 C# .NET 中,将 double 组初始化为 NaN 的最快方法是什么?

这是我目前如何初始化一个包含许多元素的数组。

int length = array.Length;
for(int i = 0; i < length; i++)
{
array[i] = double.NaN;
}

有没有更快的方法?

最佳答案

用字节值 0xff 填充数组会产生 NaN。试试这个代码看看你的机器上最快的是什么。 Memset() 并不总是一个灌篮高手顺便说一句:

using System;
using System.Runtime.InteropServices;
using System.Diagnostics;

class Program {
static void Main(string[] args) {
var arr = new double[10 * 1024 * 1024];
for (int loop = 1; loop < 20; ++loop) {
var sw1 = Stopwatch.StartNew();
for (int ix = 0; ix < arr.Length; ++ix)
arr[ix] = double.NaN;
sw1.Stop();
var sw2 = Stopwatch.StartNew();
memset(arr, 0xff, 8 * arr.Length);
sw2.Stop();
Console.WriteLine("Loop: {0}, memset: {1}", sw1.ElapsedMilliseconds, sw2.ElapsedMilliseconds);
}
Console.ReadLine();
}
[DllImport("msvcrt.dll")]
private static extern void memset(double[] array, int value, int cnt);
}

关于c# - 将数组中的所有元素初始化为 NaN 的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2303601/

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