「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > C ++のMEMSETと同様に、GOの配列を効率的に初期化するにはどうすればよいですか?

C ++のMEMSETと同様に、GOの配列を効率的に初期化するにはどうすればよいですか?

2025-02-06に投稿しました
ブラウズ:881

How Can I Efficiently Initialize Arrays in Go, Similar to C  's memset?

go?

には、memset関数が特定の値を持つ配列の効率的な初期化を可能にします。 Goでは、直接的な同等のものはありませんが、いくつかの手法が同様の結果を達成できます。目的の値への配列。 i:=範囲a { a [i] = v } }

repoted copy()

を利用して、繰り返しコピーパターンを活用してアレイ値を効率的に設定することができます。

func memsetrepeat(a [] int、v int){ Len(a)== 0の場合{ 戻る } a [0] = v BP:= 1; bp func memsetLoop(a []int, v int) { for i := range a { a[i] = v } }

ベンチマーク結果

これらの手法のパフォーマンスを評価するために、さまざまな配列サイズに対して互いにベンチマークします。 ([] int、1000)//サイズは異なります func benchmarkloop(b *testing.b){ i:= 0; i 結果は、memsetrepeat()がより大きな配列に対してmemsetloop()を上回ることを示しており、高速初期化の効率を示しています。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3