問題タブ [contiguous]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
34 参照

python - リスト内のアイテムの ContiguousCount を見つけていますか?

リストが与えられた場合:

次を使用して、リストの数を取得できましたcollections.Counter

リスト内の要素のグローバル カウントではなく、連続したアイテムをカウントするにはどうすればよいですか? 例えば

0 投票する
1 に答える
222 参照

c - cで連続したIDを持つスレッドを作成する方法は?

連続した ID 番号を持つスレッドを C で作成しようとしています。たとえば、10 個のスレッドを作成し、それらに 1 から 10 までの ID を与えたいとします。後で、これらの ID にアクセスしてスレッド関数から出力できるようにしたいと考えています。これは実現可能ですか?

これは簡単に思えるかもしれませんが、どこにも解決策を見つけることができませんでした。

ありがとう

0 投票する
2 に答える
1299 参照

c - C で 3D 配列に連続メモリを割り当てる

3D 配列に連続したスペースを割り当てる必要があります。(編集:) 最初にこれを明確にするべきだったと思いますが、実際の製品コードでは、実行時まで配列の次元を知りません。簡単にするために、以下のおもちゃのコードでそれらを定数として提供しました。連続したスペースを主張することの潜在的な問題を知っていますが、それを持たなければなりません。2D 配列でこれを行う方法を見てきましたが、パターンを 3D に拡張する方法がわかりません。関数を呼び出してメモリを解放するとfree_3d_arr、エラーが発生します。

誰かが修正が何であるかを教えていただければ幸いです。コードはここにあります:

0 投票する
6 に答える
1394 参照

arrays - 連続した 5D 配列を動的に作成しますか?

連続したメモリ (別の 5D 配列) に読み込む必要がある非常に大きな 5D 配列を使用しています。配列が大きすぎてセグ フォールトが発生するため、配列をスタックに配置できません。私が行ったことは、malloc を使用して 5D 配列を動的に作成することですが、連続したメモリではないことがわかりました。これに対するエレガントな解決策はありますか、それとも面倒なことになるのでしょうか?

0 投票する
1 に答える
320 参照

python - contiguous-type が異なる numpy 配列の加算速度

Numpy 配列は、異なる連続した型 (C- および F-) で格納されます。numpy.swapaxes() を使用すると、連続した型が変更されます。2 つの多次元配列 (より具体的には 3d) を追加する必要があります。そのうちの 1 つは、軸が交換された別の配列から取得されます。私が気付いたのは、最初の軸が最後の軸と交換されると、3D 配列の場合、連続した型が C- から F- に変わることです。また、連続した型が異なる 2 つの配列を追加すると、非常に遅くなります (2 つの C 連続配列を追加するよりも約 6 倍遅くなります)。ただし、他の軸が交換された場合 (0-1 または 1-2)、結果の配列には、C および F 連続 (非連続) の両方に対して偽のフラグが設定されます。私にとって奇妙なことは、C 構成の配列を 1 つ追加し、C も F も連続していない配列を 1 つ追加することは、実際には、同じタイプの 2 つの配列を追加するよりもわずかに遅いことです。

  1. C-&F-連続配列の追加と C-&非連続配列の追加で異なるように見えるのはなぜですか? 再配置メカニズムの違いが原因ですか、それとも単に C- と F- 隣接間の再配置距離が考えられるすべての軸順序で最も長いためですか?

  2. C-contiguous 配列と F-contiguous/non-contiguous 配列を追加する必要がある場合、速度を加速する最良の方法は何ですか?

以下は、私が遭遇したものの最小限の例です。私のコンピューターで印刷された 3 つの持続時間は、2.0 秒 (C 連続 + C 連続)、12.4 秒 (C 連続 + F 連続)、3.4 秒 (C 連続 + 非連続)、および 3.3 秒 (C 連続) です。 + 不連続)。

0 投票する
1 に答える
921 参照

c++11 - C++でランダムアクセスをサポートしているが連続ストレージをサポートしていないイテレータの種類は?

cppreference のスクリーンショットで以下にリストされている、C++17 以降の新しいイテレータがあることがわかりました。私はとても混乱しました。C++ でランダム アクセスではあるが連続ストレージではないイテレータの種類は?? それ以外の場合、 ContiguousIterator は RandomAccessIterator よりも強力ではありませんか? 右?

ここに画像の説明を入力

そして、ここのリンク

0 投票する
1 に答える
127 参照

c - OpenGL - C でリストにデータを割り当てて glBufferData で使用すると正しく動作しない

データをリストにプッシュバックしてから、このリストを OpenGL glBufferData で使用するときに問題が発生します。

3 つの異なるスプライトバッチを使用して 3 つのスプライトを描画する単純な OpenGL シーンがあります。事前に頂点にメモリを割り当ててから、この頂点配列をスプライトの頂点に使用してから、リストにプッシュバックすると機能します。しかし、私が望むのは、スプライトの頂点をリストに直接プッシュバックすることです。これは機能せず、3 つの三角形 (半分のスプライト) しか得られません。

sb->vertices はリストです。

これは機能し、3 つのスプライトを描画します。

作業バージョン

これは機能せず、3 つのハーフスプライトしか描画しません:

動作していません

このようにリストにプッシュバックすると、glBufferData で使用できる連続したメモリ ブロックが得られると思いました。

glBufferData() を呼び出す方法は次のとおりです。

リストのコードは次のとおりです。

0 投票する
2 に答える
365 参照

memory-management - 外部フラグメンテーションの解決策 - 非連続割り当て

私の理解では、プログラムには仮想メモリ内の連続したアドレス空間が割り当てられます。アドレス空間には、ヒープ、スタック、データおよびテキスト セクション、および一部の空き領域が含まれます。

しかし実際には、これらのセクションは物理メモリ (RAM) 内で連続していません。この場合、外部フラグメンテーションを解決できませんか? つまり、外部断片化の全体的なポイントは、十分な連続スペースがないことです。それでは、セグメントを分割して、連続していないスペースを使用してみませんか?

私は何かが欠けていることを知っています。誰かがこれについて詳しく説明できますか?ありがとう。