var, std::vector<int>
. Bir dizi aralık için "kenar" değerlerini temsil eder. Örneğin, foo
, 0, 1, 3, 5, 7, 11} ise, aralıklar 1-3, 3-5, 5-7, 7-11'dir. Benim için önemli olan, bu 4 döneme eşittir. Her dönemin, bir aralıktaki ilk sayıyı ve sonuncuyu içermediğini unutmayın. Yani benim örneğimde, 8 (sıfır tabanlı) dönemde 8 görüntülenir. 7 de 3. dönemde belirir. 11 ve üstü hiçbir yerde görünmüyor. 2, 0 döneminde görünür.std :: bind2nd için bir yedek
bir int
bir bar
göz önüne alındığında, bana bar
içermelidir süresi tanıyabilir
std::find_if(
foo.begin(),
foo.end(),
std::bind2nd(std::greater<int>(), bar)
) - foo().begin() - 1;
kullanın.
Sorunum: std::bind2nd
kullanımdan kaldırıldı, bu nedenle yeniden düzenleme yapmam gerekiyor. Güncellenen işlevleri kullanan eşdeğer deyim nedir? std::bind
bariz şekilde "düşmez".
BTW, 'std :: distance (foo.begin(), std :: lower_bound (foo.begin(), foo.end(), bar)) - 1;' burada daha uygun görünüyor. – Jarod42