問題タブ [remove-if]

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 投票する
3 に答える
3169 参照

c++ - remove_ifをremove_not_ifに変える

述語の戻り値を逆にして、trueではなくfalseを返す要素を削除するにはどうすればよいですか?

これが私のコードです:

(消去の欠如は無視してください)

FindNameを使用すると、単純なファンクターになります。

私は次のようなものが欲しいです:

残念ながら、まだc ++ 0xを使用していないため、ラムダは許可されていません。NotFindNameファンクターを作成するよりも優れたソリューションがあることを願っています。

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

c++ - C ++では、リストからオブジェクトを削除します

私は多かれ少なかれこのようなプログラムを書いています:

THING_IS_MEの代わりに何を書く必要がありますか?

言い換えれば、私は物事のコレクションとしてグローバルSTLリストを使用しています。ある時点で、リストにあるオブジェクトは、それが冗長であることを認識し、a)リストから自分自身を削除し、b)自分自身を破壊したいと考えています。

どうすればよいですか?

私は約15年間C++を作成しておらず、このページで少し混乱しています:http ://www.cplusplus.com/reference/algorithm/remove_if/

これらの述語は何ですか?C ++には高階関数がありますか?

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

c++ - std :: remove_if-ラムダ、コレクションから何も削除しません

わかりました、私はここでばかげた間違いをしたと思います。DisplayDevice3dのリストがあり、各DisplayDevice3dにはDisplayMode3dのリストが含まれています。DisplayMode3dを持たないDisplayDevice3dのリストからすべてのアイテムを削除したいと思います。私はそれを行うためにラムダを使用しようとしています、すなわち:

MyDisplayDevicesの6つのDisplayMode3dのうち、ModesコレクションにDisplayMode3dが含まれているのは1つだけですが、リストから削除されるものはありません。

私はここでどんな多くの間違いを犯しましたか?

編集:

ああ、私の間違いは、std :: remove_ifの代わりにMyDisplayDevices.remove_ifを使用する必要があるということでしたが、以下の答えはstd :: remove_if:pの使用に対して正しいです。

0 投票する
7 に答える
1800 参照

c++ - std::set の何が問題になっていますか?

他のトピックでは、この問題を解決しようとしていました。問題は、から重複する文字を削除することでしたstd::string

順序は重要ではないため、s最初に並べ替えてから使用std::uniqueし、最終的にサイズを変更して目的の結果を取得しました。

それは正しいです!


今、私は同じことをしたいのですが、同時に文字の順序をそのままにしたいのです。つまり、次の出力が必要です。

だから私はこれを書いた:

次の出力が得られます。

つまり、a繰り返されますが、他の繰り返しはなくなります。コードの何が問題になっていますか?

とにかく、コードを少し変更します:(コメントを参照)

出力:

問題がなくなりました!

では、最初の解決策の何が問題なのですか?

また、メンバー変数をunique参照型にしないと、問題は解決しません

std::setまたはis_repeatedファンクターの何が問題になっていますか? 問題はどこにありますか?

is_repeatedまた、ファンクターがどこかにコピーされると、そのすべてのメンバーもコピーされることに注意してください。ここに問題はありません!

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

c++ - C ++演算子()括弧のオーバーロード

最近、ベクターからアイテムを削除することについて質問しました。ええと、私が得た解決策は機能しますが、私はそれを理解していません-そしてそれを説明するドキュメントを見つけることができません。

として使用される:

std :: remove_ifのドキュメントを調べたところ、クラスが()演算子をオーバーロードした場合にのみ、関数の代わりにクラスを渡すことができると書かれています。情報は一切ありません。

誰かがへのリンクを知っていますか:

    • 例/説明を含む本
      または、オンラインドキュメント/チュートリアルへのリンク

  • これを手伝っていただければ幸いです。理解できない限り、ソフトウェアにコードを追加するのは嫌いです。私はそれが機能することを知っており、演算子のオーバーロードに(ある程度)精通していますが、()演算子が何のためにあるのかわかりません。

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

    c# - 正規表現(.NET)と一致しない文字の置換/削除

    文字列を検証するための正規表現があります。しかし、今度は、正規表現に一致しないすべての文字を削除したいと思います。

    例えば

    正規表現を使用して有効な文字を判別し、他のすべての文字を削除する方法についてのアイデア。

    どうもありがとう

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

    c++ - c++ ベクトル; remove_if 単一の値のみを削除しますか?

    コンテナーから値の範囲を消去する関数を実装することになっています。そう

    たとえば、コンテナ v から 1.5 より大きく 24 より小さい値を削除します。そして、私の関数はリストに対して完全に機能します。

    rg は範囲内にあるかどうかをチェックします (その部分の実装は問題ではないので、詳しくは説明しません)。

    ただし、ベクトルに対して eraseRange を呼び出し、同様のメソッドを使用して値を消去すると、最初の値のみが消去されます。したがって、1 から 10 までの数字を持つベクトルを使用する場合、次のように呼び出します。

    削除されるのは 3 つだけです。

    通常、これは問題になりません。イテレータを使用して値を確認するだけです。この特定の演習を除いて、for/while/do ループは明示的に禁止されています...

    したがって、問題はランダム アクセス イテレータを持つコンテナーにあるようです。そして、代替手段として何を実装すればよいかわかりません。ヘルプ?

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

    c++ - remove_if を使用し、アイテムがオブジェクトへのポインターである場合、ベクター内のアイテムを削除するにはどうすればよいですか?

    次のことを行うと、メモリリークの問題が発生するのではないかと心配しています。

    (サンプルコード)

    ポインターの場合、消去はメモリを解放しませんよね?remove_if を使用していなければ、ポインターを破棄する前に delete を呼び出すことができます。この場合、どうすればよいでしょうか?スマートポインター? それらをすべて再実装したくないし、boost ライブラリを追加したくありません。

    ありがとう!

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

    c++ - 消去で remove_if を使用する方法

    条件に基づいてリストからオブジェクトを削除する方法を知りたいです。

    調べてみたらこうなったのですが、それでもうまくいきません!

    remove_ifだから私は消去で使用する方法を知りたいです。

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

    c++ - g++ string remove_if error

    Here's the code:

    When compiled in VS 2010, it works perfectly fine. Compiled with G++ it says: