コンテナがあり、ランダムに述語を満たすイテレータを選択したいと思います。具体的に役立つ場合、コンテナはマップです。範囲内の要素の数を取得するために述語を満たすイテレータから一様にランダムなコンテナからイテレータを取得する
std::count_if
:
単純に、私はこれを言うでしょう。
ランダム番号btwn 0
とnum_elements-1
を選択してください。
乱数にカウントアップしてtrueを返すステートフルな述語を作るためのラムダを作成します。
std::find_if
とラムダ。
これはうまくいくでしょうか?もっと良い方法がありますか?あるいは、count_ifの代わりにcountを使用して、述語に失敗した場合に番号を再生成することもできます。述語がほとんど真実であると思われるが、私の目的のためにはうまくいかない場合に役立つだろう。
"ランダムに述語を満たすイテレータ"を明確にすることはできますか?コンテナのイテレータ?述語に対する議論は何ですか?述語を満たすイテレータはどういう意味ですか? – qxz
私はあなたがコードテストを作成するのに十分なアイデアを持っていると思います。 –
編集されたタイトルと質問の編集に感謝します。私が思っていたことに対して、セルチクの答えが正しいように見えます。 –