Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: заполнение массива
Показать сообщение отдельно
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Не совсем по теме конечно, вот как ещё можно сделать. здесь не хранится в виде *double[7]
Код: Выделить весь код
#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <iterator>
#include <sstream>
#include <iomanip>
using namespace std;

int main(int argc, char* argv[])
{
    string str1;
    map<string,vector<double> > weather_by_wday;

    while(getline(cin, str1)) // перебираем строчки
    {
        istringstream line_stm(str1);

        if ((line_stm >> str1)) // день недели
        {
            typedef istream_iterator<double,char> istream_iter;
            // копируем в него данные из потока
            copy(istream_iter(line_stm), istream_iter(), back_inserter(weather_by_wday[str1]));
        }
    }

    // теперь всё упорядочено по дням недели
    // weather_by_wday["день недели"] - это вектор данных
    // можно пользоваться им так: weather_by_wday["ВТ"][3] - это будет 3-й вторник
    // допустим надо вывести на экран

    typedef map<string,vector<double> >::iterator map_iter_t;
    unsigned max_data_size = 0;

    // т.к. длины векторов могут быть разные, найдём самый длинный

    string order[7] = {"mon", "tue", "wed", "thr", "fri", "sat", "sun"};

    for(unsigned wday=0; wday<7; ++wday)
    {
        cout << setw(10) << order[wday];
        unsigned size1 = weather_by_wday[order[wday]].size();
        if (max_data_size<size1) max_data_size=size1;
    }

    for(unsigned n=0; n<max_data_size; ++n)
    {
        cout << "\n";
        
        for(unsigned wday=0; wday<7; ++wday)
        {
            cout << setw(10);
            vector<double> &weather(weather_by_wday[order[wday]]);
            if (n<weather.size()) cout << weather[n];
            else cout << "?";
        }
    }

    return 0;
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:40, 19-11-2009 | #16

Название темы: заполнение массива