ько смежных пар одинаковых объ
Автор admin Понедельник, 1 июня 2009 11:32
ько смежных пар одинаковых объектов, тест adjacent_find() спроектирован так, чтобы найти все дубликаты. Поиск начинается от начала интервала и продолжается в цикле до тех пор, пока итератор it не достигнет конца исходного интервала (когда других совпадений заведомо не остается). Цикл выводит информацию о каждом найденном совпадении, после чего снова вызывает adjacent_find() с первым аргументом it + 1. Такая реализация позволяет найти две пары в последовательности из трех элементов. При взгляде на цикл while кажется, что его можно записать изящнее: while(it != v.endO) { cout « “adjacent_find: ” « *it++ « “, ” « *n++ « endl; it = adjacent_findOt, v.endO): } Именно это мы попытались сделать в первом варианте программы. Однако нам не удалось получить ожидаемый результат ни на одном компиляторе! Дело в отсутствии гарантированного порядка выполнения инкрементов в этом выражении. В следующем тесте алгоритм adjacent_find() используется в сочетании с предикатом PlusOne. Тест обнаруживает все пары, в которых следующий элемент на 1 больше предыдущего. Как и в описанном тесте, цикл while находит все вхождения. Алго
Комментарии закрыты.
Последние комментарии