Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
yogurt
62 / 62 / 1
Регистрация: 02.08.2008
Сообщений: 107
#1

Изменить размер трехмерного вектора - C++

31.07.2015, 12:31. Просмотров 314. Ответов 3
Метки нет (Все метки)

Товарищи, у меня есть массив вида
C++
1
vector<vector<int> > rand_num_first(220, vector<double>(3, 0))
(да и трехмерные тоже есть). Я по ходу программы изменяю его размеры (как число строк, так и число столбцов по отдельности). В моих нынешних примерах все строки содержат вектор по три числа, но встает вопрос, что делать, когда мне надо разное количество элементов в каждой строке? Сейчас я изменяю размер одинаково для всех вот так
C++
1
2
3
fij.resize(factor_count);
for (int i = 0; i < static_cast<int>(fijk.size()); i++)
    fij[i].resize(decision_count,0);
А можно ли каждому вектору, который строка, задать разные длины?
Слишком много надо переделать, чтобы проверить работоспособность, посему лучше заранее узнать об бесперспективности такого подхода, особенно если это на самом деле простой вопрос.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2015, 12:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Изменить размер трехмерного вектора (C++):

Как изменить размер двумерного вектора? - C++
Объявление у меня такое: std::vector&lt;std::vector&lt;std::size_t&gt;&gt; Data; Изначально размер неизвестен, число строк и столбцов зависит от...

Выделить память для трехмерного массива и изменить индексы начального элемента массива - C++
Выделить память для трехмерного массива а. Изменить индексы начального элемента массива на . Протестировать программу

Как можно увеличить размер вектора, который является элементом вектора vector<vector<int>>arr(n, vector <int>) - C++
Написал программу, которая создает вектор 'а' векторов 'b', вектора 'b' содержат 2 числа. Стало интересно, как нужно изменить программу...

Размер вектора - C++
Подскажите функцию для класса vector, которая будет возвращать размер памяти, который занимает вектор.

Размер вектора - C++
День добрый. У меня проблема. Нужно объявить вектор, заполнить его случайными числами в диапазоне от -50 до 50, вывести в listbox1....

Размер двумерного вектора - C++
имею такое объявление vector&lt;vector&lt;int&gt;&gt; Mat; vector&lt;int&gt; Vec; инициализируем эту структуру, элементы в Mat хранятся так -...

3
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
31.07.2015, 12:45 #2
А что за необходимость заранее устанавливать размеры векторов? Во время работы программы вставляйте элементы куда надо, да и все. Вообще-то лучше бы решаемую задачу сформулировали, может там и не векторы вовсе нужны, а другое что-нибудь.
0
yogurt
62 / 62 / 1
Регистрация: 02.08.2008
Сообщений: 107
31.07.2015, 13:13  [ТС] #3
Я обрабатываю массивы чисел. У меня этих массивов 11 штук сейчас. Задача математическая, посему в чём-то я храню исходные данные, в чём-то промежуточные, в чём-то ответ.
Речь идёт о том, нужны ли здесь массивы или именно vector? Просто как-то мне с ним проще. А этот массив единственный с фиксированными размерами (пока что). Я решил частную задачу, теперь переделываю под общий случай. Все данные я буду грузить из эксельки, где я буду хранить либо кучу нулей, дабы все строки были одного размера (как такового нуля в данных у меня нет, но вместо него можно и -1), а потом буду делать кучу циклов, которые заведомо будут просматривать нули и ничего не делать, либо я буду делать кучу циклов с ограничением сверху rand_num_first[i].size().

Добавлено через 9 минут
и да, понятное дело в первом посте вектор int int (очепятался)

Добавлено через 3 минуты
Спасибо, я проверил и на самом деле, можно каждой строке-вектору дать свой размер, отличающийся от других строк-векторов.
0
ValeryS
Модератор
6709 / 5118 / 482
Регистрация: 14.02.2011
Сообщений: 17,203
31.07.2015, 13:15 #4
если задать массив фиксированного размера,то увеличится быстродействие, но теряешь память
что важнее решать разработчику
а вообще судя по описанию это классический прореженный массив, почитай что-нибудь про них
0
31.07.2015, 13:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2015, 13:15
Привет! Вот еще темы с ответами:

Получить размер вектора - C++
Привет всем. Столкнулся вот с такой проблемкой: Есть вектор: std :: vector&lt;Ball*&gt; balls; Он находится инициализируется в классе...

Размер вектора и вывод элементов - C++
Объясните почему в функции print размер передаваемого вектора v.size()=0? Соответсвенно не работает цикл for в print(). #include...

Как вывести размер вектора - C++
Скажите, пожалуйста, что нужно добавить в код чтобы вывести размер вектора? Элементы я вывел.. #include &lt;iostream&gt; #include...

Размер вектора всегда равен нулю - C++
void f (char a, vector &lt;int&gt;ch) { for (int i=0; (a-'0')&lt;10 &amp;&amp; (a-'0'&gt;=0) ; i++) // { ch.push_back(a-'0'); } } ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru