問題タブ [post-increment]
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.
android - アンドロイドでのインクリメント演算子の実装
Android の 2 つのオペレーター内でパフォーマンスまたは消費電力の違いがあるかどうかを判断するために、事前インクリメントと事後インクリメントでいくつかのテストを行いました。
違いは見つかりませんでした。
基本的な論文はここでよく説明されています: http://www.roman10.net/pre-increment-and-post-increment/ (temp-var が生成されないため、pre の方が高速です)。
私はこれをc ++で学びました。このWebサイトはc実装を示していますが、Androidで実装がどのように行われるかを理解できませんでした(おそらく異なる)。
テストに使用されるコードは
ご想像のとおり、これはプリインクリメント用のチャンクであり、ポストワーク用のチャンクでもあります。tamp var "lTMP" を使用して、演算子の戻り値が割り当てられ、コンパイラがインクリメント演算子を変換しないようにしました。
実装を見つける方法を教えてください。コンパイラは、承認されたときに、「lTMP」が読み取られないという演算子を変換できますか? そのようなステートメントはコンパイル中に自動的に削除されますか?
c - C のポスト インクリメントとプリ インクリメント
次の 2 つの C ステートメントについて質問があります。
x = y++;
t = *ptr++;
ステートメント 1 では、y の初期値が x にコピーされ、y がインクリメントされます。
ステートメント 2 では、*ptr が指す値を調べ、それを変数 t に入れ、後で ptr をインクリメントします。
ステートメント 1 では、接尾辞インクリメント演算子が代入演算子よりも優先されます。では、最初に y をインクリメントしてから、インクリメントされた y の値に x を代入するべきではありませんか?
これらの状況での演算子の優先順位がわかりません。
java - 式の評価順序はC++とJavaでどのように異なりますか?
このページの例を理解しようとして頭がしわになりました: http ://answers.yahoo.com/question/index?qid = 20099103170907AAxXYG9
より具体的には、このコード:
出力を与える:566
式が右から左に評価される場合、これは私には理にかなっていますが、Javaでは同様の式です。
次の出力を提供します:456
これは、左から右に評価されていることを示しているため、より直感的です。さまざまなサイトでこれを調査すると、C ++ではコンパイラ間で動作が異なるようですが、私はまだ理解しているとは確信していません。JavaとC++の評価におけるこの違いの説明は何ですか?ありがとうSO。
java - このコードにカウントダウン タイマーを埋め込みましたが、そうではありませんでした
今度は XML ファイルです。textView1 は、ボタンがクリックされた回数です。timeElapsed はカウントダウン表示用です。問題は、カウントダウンタイマーを実装したときに表示されなかったということです。ディスプレイと背景の色が同じであるかどうかなど、すべての些細な間違いをチェックしました。すべてがうまく見えました。残念ながら、バックアップせずにカウントダウン タイマーのコードを削除しました。
java - 出力8 2を与えるSCJPプログラムはどうですか?
このscjpコードを試してみたところ、出力5 3が得られました。どこが間違っているのか教えてもらえますか
java - 変数への割り当ては効果がありませんか?
私がこれを行うとき:count = ++ count; 警告が表示されるのはなぜですか-変数カウントへの割り当ては効果がありませんか?これは、カウントがインクリメントされてから、それ自体または他の何かに割り当てられることを意味しますか?++ countと同じですか?count =count++で何が起こるか; ?これについて警告が表示されないのはなぜですか?
c++ - cの同じステートメントの同じ変数にインクリメンターとデクリメンターを含めることはできますか
は
Cの有効なステートメント?(コンパイル/実行されますか)そして、これのための実用的なアプリケーションはありますか?
編集で質問を変更して申し訳ありませんが、私は何かを見つけました。
私のC++コンパイラ(Visual Studio 2010)によると:
は有効なコマンドですが
ではありません。これには何か理由がありますか?
c++ - C++OutputIteratorのポストインクリメント要件
C ++では、OutputIterator型X
が形式の式をサポートしている必要があります。r++
ここで、はのr
インスタンスですX
。この接尾辞の増分は、意味的に次のものと同等である必要があります。
(*) { X tmp = r; ++r; return tmp; }
に変換可能な型を返す必要がありX const&
ます。C ++ 11では、24.2.4を参照してください(ただし、これは新しいものではありません)。同じセクションで、それは言います
出力イテレータのアルゴリズムは、同じイテレータを2回通過しようとしないでください。それらはシングルパスアルゴリズムである必要があります。
上記の(*)が与えられた場合、次のように戻り値をコピーするとします。X a(r++);
インクリメント
r
する前に参照解除可能でしたが、参照解除されなかったとします。a
参照解除可能である必要がありますか?もしそうなら、そうでない場合X a(r++); *a = t;
と同じ割り当てを実行する必要*r++ = t;
がありますか?とに(他の)条件はa
ありr
ますか?それ以外の場合は、
r
インクリメントする前に参照解除/割り当てが行われ、そのインクリメントされた値は(また)参照解除可能であると想定します。次のうちどれが(もしあれば)明確に定義されています:(a)*a = t;
、(b)++a; *a = t;
、(c)*r = t;
?
フォローアップも参照してください:二重にインクリメントされたOutputIteratorへの間接参照-割り当て
c++ - 二重にインクリメントされた OutputIterator への逆参照代入
(優れた) 質問C++ OutputIterator ポストインクリメント要件 に従って、型の逆参照可能でインクリメント可能な値、および適切な型の値r
について、次の式を観察します。OutputIterator
X
o
有効であり、同等のセマンティクスを持っています
ただし、その間に が複数回インクリメントされた場合、a
逆参照割り当て可能であることに変わりはありません。r
つまり、このコードは有効ですか?
値に対する操作が別の値に対する操作の有効性にどのように影響するかを理解するのは困難ですが、たとえばInputIterator
(24.2.3) は、の事後条件の下で++r
:
の以前の値のコピーは、
r
逆参照可能にする必要も、 のドメインにある必要もありません==
。
関連セクション: 24.2.2 イテレーター、24.2.4 出力イテレーター、17.6.3.1 テンプレート引数の要件。
また、これが有効である必要がないOutputIterator
場合、既存の要件を守りながら、その非有効性を利用することで型の実装 (効率性、単純さ) が向上する状況はありますか?