jagged array in C++
От: klairen Россия  
Дата: 22.04.03 11:11
Оценка:
подскажите, пожалуйста, новичку как в С++ организовать невыровненный массив... фишка в том, что размеры его будут определяться в цикле... то есть я заранее не знаю, сколько выделить позиций скажем в пятой строке... заранее спасибо...
Re: jagged array in C++
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 22.04.03 11:16
Оценка: 2 (2) +1
Здравствуйте, klairen, Вы писали:

K>подскажите, пожалуйста, новичку как в С++ организовать невыровненный массив... фишка в том, что размеры его будут определяться в цикле... то есть я заранее не знаю, сколько выделить позиций скажем в пятой строке... заранее спасибо...


std::vector< std::vector<тип_элементов> > не подойдет?
- Искренне ваш, Поросенок Пафнутий
Re: jagged array in C++
От: klairen Россия  
Дата: 22.04.03 11:29
Оценка:
дьявол... отучил меня С# от выражений типа double ** напрочь...
Re[2]: jagged array in C++
От: Аноним  
Дата: 22.04.03 11:37
Оценка:
в double ** нет ничего хорошего, так как это скорее стиль Си, а не Си++. Используй std::vector<std::vector<double> >vec;
Re[3]: jagged array in C++
От: klairen Россия  
Дата: 22.04.03 18:39
Оценка:
Здравствуйте, Аноним, Вы писали:

А>в double ** нет ничего хорошего, так как это скорее стиль Си, а не Си++. Используй std::vector<std::vector<double> >vec;


прошу прощения — я просто не увидел в прошлый раз вашего совета — здесь инет ужасный, я не дождался обновления и отправил следом свой пост...
а std:: vector<double> просит указывать размер массива — то есть если объявлять такую структуру, то придется указывать размеры заранее... а мне нужно именно динамически определять размеры... или я неправ?
Re[4]: jagged array in C++
От: WolfHound  
Дата: 22.04.03 18:56
Оценка: 2 (1)
Здравствуйте, klairen, Вы писали:

K> а std:: vector<double> просит указывать размер массива — то есть если объявлять такую структуру, то придется указывать размеры заранее... а мне нужно именно динамически определять размеры... или я неправ?

    std::vector<std::vector<double> > arr;
    arr.reserve(10);
    for(int i=0;i<10;++i)
    {
        arr.push_back(std::vector<double>());
        for(int j=0;j<10;++j)
            arr[i].push_back(j);
    }

Ы?
... << RSDN@Home 1.0 beta 5 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[5]: jagged array in C++
От: klairen Россия  
Дата: 22.04.03 19:31
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, klairen, Вы писали:


WH>
WH>    std::vector<std::vector<double> > arr;
WH>    arr.reserve(10);
WH>    for(int i=0;i<10;++i)
WH>    {
WH>        arr.push_back(std::vector<double>());
WH>        for(int j=0;j<10;++j)
WH>            arr[i].push_back(j);
WH>    }
WH>

WH>Ы?


угу, спасибо... просто уже наваял:


double **u;
u = (double**)malloc(count_of_rows*sizeof(double*));

for (int i=0;i<n_strok;i++) u[i] = (double*)malloc(count_of_columns_in_row_i*sizeof(double))


а что будет работать быстрее, стабильнее? с чем работать проще? просто на будущее...
Re[6]: jagged array in C++
От: WolfHound  
Дата: 23.04.03 05:42
Оценка:
Здравствуйте, klairen, Вы писали:

K> угу, спасибо... просто уже наваял:

За помощь принято ставить оценки.

K>
K>double **u;
K>u = (double**)malloc(count_of_rows*sizeof(double*));

K>for (int i=0;i<n_strok;i++) u[i] = (double*)malloc(count_of_columns_in_row_i*sizeof(double))
    
K>

Какой кашмар. Никогда так не пиши.
K> а что будет работать быстрее, стабильнее? с чем работать проще? просто на будущее...
Скорость примерно одинаковая. Проще и стабильние однозначно мой вариант.
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.