私は を持ってfoo
いstd::vector<int>
ます。一連の範囲の「エッジ」値を表します。
たとえば、foo
{1, 3, 5, 7, 11} の場合、範囲は 1 ~ 3、3 ~ 5、5 ~ 7、7 ~ 11 です。私にとって重要なのは、これが 4 ピリオドに相当することです。各ピリオドには、範囲の最後の数値ではなく、最初の数値が含まれることに注意してください。したがって、私の例では、8 は 3 番目 (ゼロベース) のピリオドに表示されます。3期にも7が登場。11 以上はどこにも表示されません。2 は第 0 ピリオドに表示されます。
bar
である aが与えられた場合int
、私は使用します
std::find_if(
foo.begin(),
foo.end(),
std::bind2nd(std::greater<int>(), bar)
) - foo().begin() - 1;
を含むべきピリオドを教えてくださいbar
。
私の問題:std::bind2nd
非推奨なので、リファクタリングする必要があります。更新された関数を使用した同等のステートメントは何ですか? std::bind
明らかな方法で「立ち寄る」ことはありません。