問題タブ [sequences]
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.
mysql - MySql自動インクリメント列が10増加する問題
私は MySql データベースを提供するホスト会社のユーザーです。複製の問題により、自動インクリメント値が 10 ずつ増加します。これは一般的な問題のようです。
私の質問は、列が連続した ID を持つように (安全に) 自動インクリメント機能をシミュレートするにはどうすればよいですか?
私の考えは、問題を解決するために何らかのシーケンスメカニズムを実装することでしたが、それが最善の選択肢であるかどうかはわかりません. 私はウェブ上でそのようなコードスニップセットを見つけました:
これはまったく正しいようです。2 番目の質問は、このソリューションが並行安全かどうかです。INSERT文はもちろんですが、ON DUPLICATE KEYの更新はどうでしょうか?
ありがとう!
oracle - Oracleでトリガーを使用してIDENTITY/AUTOINCREMENT列をシミュレートするのはどれほど悪いですか?
もともとSQLServer固有(IDENTITYフィールドを使用)で作成されたアプリケーションを管理しています。したがって、テーブルの主キーを自動インクリメントするために多くのトリガーを定義する必要がありました。
これはOracleの世界ではハッキーな回避策と見なされていると言われていますが、それは「友人の友人」のような方法で私に言われました。シーケンスを直接使用する代わりに、トリガーを使用してシーケンスから主キーをインクリメントすることはどれほど大きな問題ですか?
sequences - 算術数列を解くにはどうすればよいですか?
どうやって:
(1 + 2 + ... + N) / N = (N + 1) / 2
また
(1 + 2 + ... + N + N) / N = (N + 3) / 2
私の教科書はこれが初歩的な数学だと言っていますが、答えを見つける方法を忘れてしまいました。
c - Oracle OCI トリガーの作成
OCI API を使用してトリガーを作成する方法はありますか?
プログラムで次のアクションを実行する必要があります。
math - N+1 + N + 1 + ... + N + 1 + N + 1 から N(N+1) を取得するにはどうすればよいですか?
どうやって:
等しい N(N + 1)? 4N+4とか4(N+1)じゃないの?
c++ - std::basic_streambuf を拡張して、反復可能なシーケンスをストリームとして扱うにはどうすればよいですか?
注: より適切な回答を得るために回答に基づいて編集されました。
私は何年にもわたって作成した C++ テンプレートのコレクションを持っており、これを Joop と呼んでいます。これは主に、「汎用」カテゴリに分類されないライブラリで構成されていますが、私がそれらを別のプロジェクトに平手打ちし続けるのに十分有用であるため、それらのほとんどは Boost などの他のライブラリに同等のものはありません。
これらのクラスの 1 つがseqstream
. アイデアは、反復可能なシーケンスを通常の STL のようなストリームとして扱うことができるようにすることです。その「文字型」はシーケンスの値の型です。
このクラスの根拠は 2 つあります。まず、潜在的に非線形で不連続なシーケンスを線形かつ連続的に見せるインターフェイスを提示する必要があります。次に、ストリーム内のすべてのオブジェクトを、単一の複雑な大きな文字であるかのように扱う必要があります。ストリームをシーケンスとして扱う標準的な方法があります。
現在、seqstream
最初、最後、および現在の要素の 3 つの反復子をラップします。seqstream
標準ストリームにbasic_seqbuf
差し込めるに置き換えたい。std::basic_streambuf
この種の動作を提供するために拡張を開始するためのリソースを誰かが提供できますか?
さらに、writableseqbuf
が許可されている場合、オブジェクトを に書き込んでもオブジェクトがシリアライズされずseqbuf
、メソッドが適切に呼び出されるか、ユーザー指定の挿入反復子 ( など) が使用されます。insert()
std::back_insert_iterator
編集:
seqstream
が現在どのように使用されているかの例を次に示します。
c++ - C/C++ の二重引用符文字の代替文字の組み合わせは何ですか?
Kernighan と Ritchie C のリファレンスを何年も持っていませんでしたが、利用できない文字を入力する方法について説明したページがそこにあったことを覚えています。(昔は、一部のキーボードには "、~ などの文字がありませんでした。)
わかりやすくするために、例を挙げましょう。文字列で引用符を取得する方法を探しているのではなく、これを置き換えたい:
これとともに:
興味深いことに、私は C/C++ コードの生成を含む自動化されたプロセスを持っていますが、(クローズド ソースの) 商用ツールにはデータ ストリーム内の引用符が含まれていません。彼ら。
編集:
うわー、私はそのような重い反応を期待していませんでした。これは、私のプロセスをもう少し詳しく説明する価値があるかもしれません。私は自動化されたビルド システムを行っています。つまり、コンパイルしているコードの変更に関しては、一定の制限があります。今のところ、文字列、スペース、およびすべてをプリプロセッサの定義に入れる必要があるという前提で生活する必要があります。私はすでに「PreprocessorDefinition」の道を進んでいます。これにより、通常のフォールバックが残りました。動作環境で文字列を定義し、そこからプロジェクト ファイルに定義を設定します。
ビルド自動化スクリプトで次のようなことを行うことで、トリグラフを使用して /D でビルドに渡されたものすべてで MSVC の引用符の削除を回避できることを願っていました。
プランCの時期だと思います。
ruby - C# の「yield」キーワードに相当する Ruby、またはメモリを事前に割り当てずにシーケンスを作成する
C# では、次のようなことができます。
これは、その長さのコレクションをメモリに割り当てることなく、1000 万個の整数の列挙可能なシーケンスを返します。
Rubyで同等のことを行う方法はありますか? 私が対処しようとしている特定の例は、列挙される値のシーケンスへの長方形配列の平坦化です。戻り値はArray
orSet
である必要はありませんが、インデックスではなく、順番にのみ反復/列挙できるある種のシーケンスです。したがって、シーケンス全体を同時にメモリに割り当てる必要はありません。.NET では、これはIEnumerable
とIEnumerable<T>
です。
私は .NET の用語に精通しているため、Ruby の世界で使用されている用語を明確に説明していただけると助かります。
編集
おそらく、私の最初の質問は十分に明確ではありませんでしyield
た.C#とRubyでは意味が大きく異なるという事実が、ここでの混乱の原因だと思います.
メソッドでブロックを使用する必要があるソリューションは必要ありません。実際の戻り値を持つソリューションが必要です。戻り値により、シーケンスの便利な処理 (フィルタリング、射影、連結、圧縮など) が可能になります。
これは、私がどのように使用するかの簡単な例ですget_items
:
IEnumerable
C# では、を使用するメソッドを返すとyield return
、コンパイラは、この動作に対応するための舞台裏で有限状態マシンを生成します。Ruby の継続を使用して同様のことを達成できるのではないかと思いますが、例を見たことがなく、これがどのように行われるかについては明確ではありません。
Enumerable
これを達成するために私が使用する可能性は確かにあるようです。簡単な解決策はArray
(モジュールを含むEnumerable
)ですが、遅延して提供し、メモリスパイクをまったく回避できる場合は、メモリ内に N 個のアイテムを持つ中間コレクションを作成したくありません。
それでも意味が分からない場合は、上記のコード例を検討してください。 が呼び出されるget_items
列挙を返します。select
渡されるselect
のは、必要なときにいつでもシーケンス内の次のアイテムを提供する方法を知っているインスタンスです。重要なのは、アイテムのコレクション全体がまだ計算されていないことです。select
アイテムが必要な場合にのみ、アイテムを要求し、潜在的なコードget_items
が動作して提供します。この怠惰はチェーンに沿って運ばれ、要求されたselect
ときにのみシーケンスから次のアイテムを描画します。map
そのため、一度に 1 つのデータ項目に対して長い一連の操作を実行できます。実際、このように構造化されたコードは、無限のプロセスを処理することさえできます。メモリエラーのない一連の値。
したがって、この種の怠惰は C# で簡単にコーディングできますが、Ruby でそれを行う方法がわかりません。
それがより明確であることを願っています (今後は午前 3 時に質問を書かないようにします。)
mysql - MySQL ID シーケンス
これは MySQL での ID 生成の正しい方法ですか?
INSERT INTO Picture (PictureId,First_pick,Title,Description,File_Name,Is_Vertical)VALUES
((SELECT max(pictureid)+1 FROM Picture),0,?,?,?,?)
このクエリが多くのスレッドで実行されたときに PictureId が一意であることが保証されている場合はどうなりますか?
テーブル構造を変更できません。特定のロック、インデックス、またはトランザクション分離レベルを使用する必要がありますか?
よろしく、ミハル
python - Python で __concat__ を実装する
を実装しようとしまし__concat__
たが、うまくいきませんでした
どうすればこれを修正できますか?