2015-11-26 17 views
-1
for(int i=1; i<distances.size(); i++) 
cout << "Distance between " << names[i-1] << " and " << names[i] << " is: " << distances[i] << ", " << endl; 

Это фрагмент из моей программы, быстрый бит информации: Программы принимает данные от пользователя, чтобы узнать, где они хотели бы посетить, а затем печатает (выпуск лежит здесь) расстояния между пунктами назначения. Итак, все вычисления работают, но проблема связана с моей линией cout, потому что для первых двух входов создается одно расстояние, а затем еще одно расстояние для каждого другого входа. Короче говоря, distances.size на 1 меньше, чем names.size. Это означает, что никакие имена не выводятся для первого расстояния, записанного, так как я использую 'i' для циклического вывода. Если я вхожу в 3 пункта назначения, есть один вывод. 4 адресата, 2 выхода, но 2 адресата, нет выходов. Что я могу сделать? Надеюсь, я ясно изложил свою проблему.Выпуска вывод данных из векторов разных размеров

+0

добавьте полную программу, чтобы лучше понять, что может быть неправильным – Nandu

ответ

0

Может быть, вы должны думать о вашем программного обеспечения Дизайн ...

Я полагаю, что если у вас есть 3 расстояния, вы хотите знать расстояние от 1 до 2, и от 2 до 3, и 1 к 3 не имеет значения.

Для быстрого решения, просто построить себе простую структуру, которая выглядит следующим образом:

struct.... 
{ 
    CDestination dest1; 
    CDestination dest2; 

    float Distance; 

    Calculate() 
    { 
    Distance = /* Your calculation here */ 
    } 
} 

Не просто создать вектор этих структур и печать трех членов. Извините, если это не то, что вы хотите, но вы не указали столько кода или информации о своей проблеме .....

+0

Спасибо за ответ. Существует уже такая структура: struct City {string name; double x; double y;} – Surge

+0

И вы были правы предположить, что меня интересуют эти расстояния, у меня также есть расчетное расстояние. Проблема в том, что для вывода расстояний с использованием расстояний [i] i должен равняться 0 и всегда будет на один меньше, чем names.size – Surge

+0

да, но где проблема с моим решением? Просто поместите эти структуры в вектор и напечатайте расстояния в цикле for от o до vec.size()? – Hafnernuss

Смежные вопросы