Jak zmusić upper_bound do szukania pierwszej nie mniejszej?

2011-10-22 15:51
0

Mam problem polegający na tym, że po użyciu upper_bound w celu znalezienia pierwszej nie mniejszej liczby w liście (wszystkie wystąpienia liczb są unikalne a lista jest posortowana w kolejności rosnącej):

std::upper_bound(FORALL(positions[ORD(*ptr)]), i, std::greater_equal<size_t>());

zwraca nieprawidłowe wyniki (FORALL to makro FORALL(container) (container).begin(), (container).end()). Nie mam pojęcia co z tym zrobić.


Pozostało 580 znaków

2011-10-22 16:03
0

Hm, a nie powinieneś użyc std::lower_bound bez żadnego komparatora?


"(...) otherwise, the behavior is undefined".

Pozostało 580 znaków

2011-10-22 16:06
0

Tak, ale wtedy mi znajdzie pierwszy nie większy.


edytowany 6x, ostatnio: hauleth, 2011-10-22 16:10

Pozostało 580 znaków

2011-10-22 16:11
0

Hm, nie mniejsza = większa lub równa, tak?

http://ideone.com/t0xos To wydaje się działać.


"(...) otherwise, the behavior is undefined".
edytowany 2x, ostatnio: Endrju, 2011-10-22 16:12

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0