問題タブ [variable-length]
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.
delphi - 可変長配列を実装する最良の方法は何ですか?
データベースからの大きな結果セットをメモリに保存したいと考えています。すべてのレコードは可変長であり、アクセス時間は配列と同じくらい高速でなければなりません。これを実装する最良の方法は何ですか? 別のテーブルにオフセットを保持し、すべてのレコードを連続して保存することを考えていましたか? 奇妙ですか?(プログラミング言語: Delphi)
c++ - 可変サイズの構造体C++
これは、C ++で可変サイズの構造体を作成するための最良の方法ですか?初期化後も長さが変わらないので、ベクトルは使いたくありません。
編集:変数名の名前を変更し、コードをより正確に変更しました。
c++ - 可変長のテンプレート引数リスト?
このようなことが行われているのを見たのを覚えています:
つまり、X は、テンプレート引数として渡された型名の可変長リストから継承します。もちろん、このコードは仮説です。
ただし、これに関する参照は見つかりません。出来ますか?C++0xですか?
matlab - MATLAB で長さが不明な行列ですか?
while ループの結果を出力できる 2 つの列を持つ可変長のゼロ行列を設定しようとしています (これを使用して、調整された時間ステップでオイラー法からのステップ データを格納することを意図しています)。長さは、ループの反復回数によって決まります。
ループの実行中にこれを行う方法があるかどうか、または最初に設定する必要があるかどうか、およびそれを行う方法があるかどうか疑問に思っています。
c++ - 可変長引数と関数のオーバーロードの違い
この C++ の質問はかなり基本的で一般的なようですが、それでも誰かに答えてもらいたいです。
1) 可変長引数を持つ関数とオーバーロードされた関数の違いは何ですか? 2) 可変長引数を持つ関数と、同様の引数を持つ別の同じ名前の関数がある場合、問題が発生しますか?
c++ - JavaのようにC++?:intの*可変*長さのベクトルのベクトル
私のモデルはいくつかを使用するのが最適です
v int [30] [i] [N_i];
intのタプルの30個のベクトルである構造。
v [0]はダミー、
v [1]はプレーンint(N_0の)、
v [2]はintのペア(N_1ペア)
...
v [29]は29タプルのint(N_29の彼ら)
これは、 vector<vector<int>>
「generic-vector-of-vectors-in-c」とは異なります。
どうやら、外側の固定dim = 30は問題ありません、内側の固定dim=30は自己拡張STLベクトルクラスによって処理されます。
中間の寸法を固定する方法はありますが、一定ではありませんか?
c++ - 可変長配列がC++標準の一部ではないのはなぜですか?
ここ数年、Cはあまり使用していません。今日この質問を読んだとき、私はよく知らないC構文に出くわしました。
どうやらC99では次の構文が有効です:
これはかなり便利な機能のようです。それをC++標準に追加することについての議論はありましたか?もしそうなら、なぜそれが省略されたのですか?
いくつかの潜在的な理由:
- コンパイラベンダーが実装するのは難しい
- 標準の他の部分と互換性がありません
- 機能は他のC++構造でエミュレートできます
C ++標準では、配列サイズは定数式でなければならないと規定されています(8.3.4.1)。
はい、もちろん、おもちゃの例ではを使用できることを理解していstd::vector<int> values(m);
ますが、これはスタックではなくヒープからメモリを割り当てます。そして、次のような多次元配列が必要な場合:
vector
バージョンはかなり不器用になります:
スライス、行、および列も、メモリ全体に分散される可能性があります。
での議論を見ると、comp.std.c++
この質問はかなり物議を醸していることが明らかであり、議論の両側にいくつかの非常に重い名前があります。std::vector
aが常により良い解決策であることは確かに明らかではありません。
arrays - Cobolの2次元可変長配列
MとNの両方が可変長であるCOBOLで2次元MxN配列を定義するにはどうすればよいですか?
可変配列を別の配列内に配置しようとすると、NetExpressで表示されるメッセージは次のとおりです。
encoding - 一連のランダム可変長バイナリ コードをエンコードする最もコンパクトな方法は?
List<List<Boolean>>
を持っていて、それを可能な限りコンパクトな方法でバイナリ形式にエンコードしたいとしましょう。
読み取りまたは書き込みのパフォーマンスは気にしません。最小限のスペースを使いたいだけです。また、例は Java ですが、Java システムに限定されません。各「リスト」の長さは無制限です。したがって、各リストの長さをエンコードするソリューションは、それ自体で可変長データ型をエンコードする必要があります。
この問題に関連するのは、可変長整数のエンコードです。List<Boolean>
それぞれを可変長と考えることができますunsigned integer
。
質問をよく読んでください。Java システムに限定されません。
編集
多くの回答が圧縮について話している理由がわかりません。私はそれ自体を圧縮しようとはしていませんが、ビットのランダムなシーケンスをエンコードしているだけです。ただし、各ビット シーケンスの長さは異なり、順序を維持する必要があります。
この質問は別の方法で考えることができます。ランダムな符号なし整数 (無制限) の任意のリストのリストがあるとします。このリストをバイナリ ファイルにどのようにエンコードしますか?
リサーチ
私はいくつかの読書をしましたが、私が本当に探しているのはユニバーサルコードであることがわかりました
結果
論文で説明されているElias Omega Codingのバリアントを使用します。正の整数の新しい再帰的ユニバーサル コード
小さい整数の表現が小さいほど、大きい整数とのトレードオフになることがわかりました。最初の整数の「大きな」表現を持つユニバーサルコードを選択するだけで、任意の大きな整数をエンコードする必要がある場合に、長期的には多くのスペースを節約できます。
c - Cで可変長の'文字列'-yを実装する方法
私はかなりグーグルで検索しましたが、可変長文字列が一般的に高級言語でどのように実装されているかについての情報を見つけることができません。私は自分でそのような言語を作成していますが、文字列からどこから始めればよいのかわかりません。
string
タイプを説明する構造体と、create
そのような「文字列」を割り当てる関数があります。
ただし、これでは1kbの長さの文字列しか許可されません。それは一種のばかげたことであり、ほとんどの場合、メモリの膨大な浪費です。
何らかの方法で使用するメモリを宣言する必要があるとすると、(効果的に)無制限の文字数を(効率的に)格納できる文字列を実装するにはどうすればよいですか?