Страница 1 из 1

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

Добавлено: 19 янв 2010, 13:33
Dragon
Заполняю вектор с базовым типом 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);
     }
Как вариант можно ввести флаг. После каждого ввода спрашивать у пользователя хочет ли он сделать еще одну запись, и если откажется, то переключить флаг и на этом закончится цикл. Но сильно громоздкий вариант, лишние вопросы.

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

Добавлено: 19 янв 2010, 15:00
BulldozerBSG
Спрашивай у пользователя, ведь только он знает сколько он хочет ввести строк. А флага никакого не надо. Просто бесконечный цикл while(1){} и выход внутри по break когда пользователь скажет что больше не надо вводить данные.

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

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