С++. Заполнение вектора с базовым типом string.

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Dragon
Сообщения: 92
Зарегистрирован: 01 окт 2009, 11:21
Откуда: Odessa
Контактная информация:

19 янв 2010, 13:33

Заполняю вектор с базовым типом string слудющим образом:

Код: Выделить всё

vector<string> v_str(10);
    string next;
    unsigned int i = 0;


    while(i < v_str.size())
    {
        getline(cin, next);
        v_str[i] = next;
        i++;
    }
Предварительно указывая размер вектора все отлично. А если размер заранее неизвестен, то начинаются проблемы.
Подскажите, как заполнить такой вектор? Какой ограничение можно задать в цикле while или через for можно сделать?
Собственно набросок такой:

Код: Выделить всё

while(/*Какая тут проверка ума не приложу*/)
    {
        getline(cin, next);
        v_str.push_back(next);
     }
Как вариант можно ввести флаг. После каждого ввода спрашивать у пользователя хочет ли он сделать еще одну запись, и если откажется, то переключить флаг и на этом закончится цикл. Но сильно громоздкий вариант, лишние вопросы.
BulldozerBSG
Сообщения: 263
Зарегистрирован: 09 янв 2010, 04:14
Контактная информация:

19 янв 2010, 15:00

Спрашивай у пользователя, ведь только он знает сколько он хочет ввести строк. А флага никакого не надо. Просто бесконечный цикл while(1){} и выход внутри по break когда пользователь скажет что больше не надо вводить данные.
Dragon
Сообщения: 92
Зарегистрирован: 01 окт 2009, 11:21
Откуда: Odessa
Контактная информация:

19 янв 2010, 15:44

Ооо, через бесконечный цикл, как вариант (век живи, век учись :) ). Спасибо.
Ответить