Код я не буду сбрасывать, так как его нет, есть только та часть, которая не поможет понять саму суть программы, но попробую объяснить на примере.
Допустим, у меня есть последовательность точек {112, 1, 30, 69, 3, 29, 74, 23, 12} и моей начальной точкой является 30, в то время как конечной является точка 23. Что мне нужно сделать, чтобы я рассматривал лишь точки {30, 69, 3, 29, 74, 23} и вывел на экран, что именно эти точки находятся между начальной и конечной точками.
Код внизу, это как мысль, которая была у меня, но я не могу докончить, так как если я начинаю с 30, как дальше сделать так, чтобы она взяла именно 69. Дистанцию не могу использовать, так как дистанция между 1 и 30 меньше чем дистанция между 30 и 69. Но я верю, что есть какая-то логика или как-то это возможно построить. Возможно моя начальная логика построена неправильно, я буду рад изменениям.
while(current!=end)
{
for(points= theVectorOfPoint.begin();points!=theVectorOfPointe.end();points++)
{
}
}
Ответ
Вот мой вариант.
/* Отвечает за номер точки */
current = 0;
/* Note: Для 30 можно отдельную переменную завести и для 23 */
/* В цикле находим номер точки, равной 30 */
while (points[current] != 30) {
current++;
}
/* И выводим все точки с 30 по 23, найдя которую выходим из цикла */
while (current < end) {
cout << points[current] << " ";
if (points[current] == 23) {
break;
}
current++;
}
Комментариев нет:
Отправить комментарий