問題タブ [erase-remove-idiom]

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 に答える
144 参照

c++ - これは std::vector でポインタを保存、反復、および削除する良い方法ですか?

それらを割り当て、正しい出力を出力しますが、これが正しいことかどうかはわかりません。ブーストやc ++ 11を使用せずに、ベクターでポインターを使用して、特定の条件が発生したときにそれらを削除しようとしていました。それで、あなたはそれについてどう思いますか?

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

c++ - C ++では、リスト内の連続するゼロの実行ごとにx個を除くすべてのゼロを削除するにはどうすればよいですか?

C ++のリスト内の連続するゼロの実行ごとに、それらxを除く実行中のすべてのゼロを削除したいと思いxます。の場合x = 0、すべてゼロを削除します。

list<int> Lリストと数値int xを入力として受け取るC++関数を考えていました。

たとえば、L = {7, 0, 12, 0, 0, 2, 0, 0, 0, 27, 10, 0, 0, 0, 0, 8}

  • の場合x = 0L = {7, 12, 2, 27, 10, 8}
  • の場合x = 1L = {7, 0, 12, 0, 2, 0, 27, 10, 0, 8}
  • の場合x = 2L = {7, 0, 12, 0, 0, 2, 0, 0, 27, 10, 0, 0, 8}
  • の場合x = 3L = {7, 0, 12, 0, 0, 2, 0, 0, 0, 27, 10, 0, 0, 0, 8}
  • の場合x = 4、戻りL = {7, 0, 12, 0, 0, 2, 0, 0, 0, 27, 10, 0, 0, 0, 0, 8}ます(元の値と同じL
  • の場合、 5つ以上の連続するゼロの実行がないため、x >= 5元の値を返します。L

数ヶ月前、私はPython( stackoverflow.com/questions/11732554 / ... )を使用して上記と同じ質問をし、優れた回答を受け取りました。ここで、このタスクをC++で完了したいと思います。

どんな助けでも心から感謝します。

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

c++ - C++ ベクトルのフィールドを削除する

私はそのようなことを正しく理解してプログラムすることができません (私は初心者です): 私にはベクトルがあります。ベクトルには、fieldA、fieldB、fieldC という要素があります。したがって、これらのベクトルの配列があるので、配列の最後のベクトルから始めて、最初のベクトルの方向に向かって、要素の 1 つに特定の値があるかどうかを確認したいと思います。if (vect[i].フィールド A == 0.0)。そのような場合、 (vect[i-1].fieldA == 0.0) が同じ値を持っている場合、配列からベクトル全体を削除したいと考えています。視覚化するコードの一部、適切な「バックイテレーション」ループを作成し、関数を使用してそれを削除する方法を教えてもらえますか? erase()、remove()、deque() を試していましたが、失敗しました。

ここでコードを台無しにしたくありません。

手伝ってくれてありがとう!

編集。したがって、最初にベクトル値を含む配列をループでフィードし、次に、要素固有の値を含むすべてのベクトルを最後から削除します。たとえば、fieldA == 0.0

ベクトルの内容を削除するだけでなく、配列を切り取りたい! classB と classA の間に適切な継承があるため、フィードはうまく機能します。ベクトルを削除してこの問題を解決したいだけです。例: 2 要素のベクトルの配列。入力: 0,1 0,3 3,3 2,3 0,6 5,6 0,8 0,7 0,6 出力:0,1 0,3 3,3 2,3 0,6 5,6 0 、8。結論: 0,7 および 0,6 ベクトルが削除されました。

0 投票する
3 に答える
335 参照

c++ - ベクター内の要素の消去

だから私は unsigned ints (vector<unsigned int>と呼ばれるvector1) のベクトルを持っています。作成した構造体の別のベクトルがあります (vector<struct>と呼ばれvector2ます)。vector<int>のインデックスである整数を保持しますvector<struct>。たとえば、としましょうvector<int = {5, 17, 18, 19}。つまりvector2.at(5) == vector2.at(vector1.at(0))

構造体には、と呼ばれるブール変数がありますvar。ほとんどの場合、varは false です。= trueのすべての要素vector1を削除したい。var

私がしたことは:

これに関する唯一の問題は、すべての真の要素が削除されないことです。すべての値を削除するために for ループを複数回実行しました。これは正しい動作ですか?そうでない場合、どこで間違ったのでしょうか?

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

c++ - ここで消去削除イディオムを使用する必要がありますか?

私はstd::vector<IRenderable*>_pBkBuffer以下のコードに)を持っています。これには、変更されない多数の静的オブジェクト (ベクターの先頭) と、その後に可変数の動的オブジェクトが含まれます。

??? には何を入れることができますか?非静的レンダラブルを消去削除するには?

私はそれを知っていますか?指定されたサブセット内のすべてのオブジェクトに一致する必要があります。

まったく消去削除を使用する必要がありますか、それとも別のアプローチを使用する必要がありますか?

0 投票する
3 に答える
663 参照

c++ - nullptrsを介してSTDリストで削除するC ++マーキングオブジェクト

これが受け入れられる慣行であるかどうか疑問に思っていました:

ここでの考え方は、Items コンテナが外部ソースの影響を受ける可能性があることを示しているということです。アイテムがコンテナーから削除されると、単純に nullptr に設定されますが、その前に RemovedItems に移動されます。

イベントのようなものが影響し、Itemsアイテムを追加/削除する可能性があるため、この解決策を考え出す必要がありました。

これは良い考えだと思いますか?

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

c++ - 一意でないコレクションでの消去削除イディオムの使用

イデオネ: http://ideone.com/NTPVyE

版画:

0、1、0、1、0、1、0、

1、0、0、0、

なぜこうなった?ベクトルの最初の要素だけを削除するべきではありませんか?

std::remove最初の要素で止まらず、ベクトル全体を通過すると思います。一意でない要素を持つコレクションで消去削除イディオムを使用する方法はありますか?

0 投票する
4 に答える
4093 参照

c++ - STL「消去-削除」イディオム:「サイズ変更-削除」しないのはなぜですか?

std::vectorから目的の項目を完全に削除する良い方法は、erase-remove というイディオムであると一般に理解されています。

上記のリンクに記載されているように (この投稿の日付の時点で)、コードでは、消去と削除のイディオムは次のようになります。

resize-removeイディオムが機能とパフォーマンスの点でイディオムと同等かどうかを知りたいerase-removeです。または、おそらく私は明らかな何かを見逃していますか?

次のresize-removeイディオムは上記のイディオムと同等erase-removeですか?

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

c++ - std::vector から項目の任意のリストを削除します>

配列を表すベクトルのベクトルがあります。行を効率的に削除したい、つまり最小限の複雑さと割り当てで行を削除したい

次のように、移動セマンティクスを使用して、削除されていない行のみをコピーして、ベクトルの新しいベクトルを構築することを考えました。

これが最も効果的な方法ですか?

編集:行を繰り返し下に移動することで、新しい配列の割り当てを回避できると考えました。これは少し効率的で、コードははるかに単純です。

ありがとう!