2013-06-10 15 views
9

Array.Copyは常にrow-majorですか? <a href="http://msdn.microsoft.com/en-us/library/k4yx47a1.aspx" rel="noreferrer"><code>Array.Copy</code></a>方法でMSDNドキュメントから

多次元配列間でコピーするとき、アレイは、行(または列)は、概念的に端から端まで配置されている長い一次元アレイ、のように振る舞います。たとえば、配列に3つの行(または列)があり、それぞれに4つの要素がある場合、配列の先頭から6つの要素をコピーすると、最初の行(または列)の4つの要素と2番目の行の最初の2つの要素または列)。

はいつもC#で、二次元アレイは、(高次元のためと同様に)row-major orderに配置されている、と仮定しているので、私は、上記で括弧「または列」の意味について混乱していますドキュメンテーション。これは、.NET Frameworkが列メジャー順序を使用する状況が存在する可能性があることを意味しますか?それは、単一の線形空間である -

+2

これはかなり混乱しています。おそらく、彼らは(#rows == 1)の場合をカバーしようとしているだけです。私はそれが常に行優先順位でコピーされていると確信しています。そうでなければ、混乱が続く! –

+1

これは私が当初考えていたものですが、「それぞれ4つの要素を持つ3つの行(または列)」には当てはまりません。私の現在の推測では、行と列の定義を切り替える人のためにそのように言われています。 – Douglas

+4

私はそれが行/列主義にとらわれないようにしようとしていると思います。最初のインデックスが行または列を意味するかどうかは気にしません。 – Rawling

答えて

10

私は容疑者単に配列が長方形ではないことを伝えるためにしようとしています。 「行」または「列」の概念は、実際にはユーザーの発明です。行も列もありません。 arr[x,y]の行に沿ったいかなる慣習も「行x、列y」または「列x、行y」は純粋にそれである。何かを概念化する上での想像力の一部。実際の唯一の注文は、が最初にナビゲートされるです。最初?または最後の?

「行」または「列」と呼ぶかどうかはあなた次第であり、どちらも野生で使用されています。

+0

私は同意しますが、それ以上の説明がないため、主流の[行、列]規約に従った場合よりも記事が混乱しやすくなります。 – Douglas

+1

また、最初のインデックスが列と呼ばれるオンラインリソースまたは出版物を指すことができますか?私はこの大会を思い出さない。 – Douglas

+0

@Douglas:FORTRAN for .NETがあります。 FORTRANでは、配列は列メジャーです。したがって、その言語のドキュメントであれば、最初の索引を「列」と呼びます。 –

関連する問題