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

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

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

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

Dragon » 19 янв 2010, 15:44

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

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

BulldozerBSG » 19 янв 2010, 15:00

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

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

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

Вернуться к началу