Форум программистов, компьютерный форум CyberForum.ru

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

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

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

31.07.2015, 12:31. Просмотров 284. Ответов 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);
А можно ли каждому вектору, который строка, задать разные длины?
Слишком много надо переделать, чтобы проверить работоспособность, посему лучше заранее узнать об бесперспективности такого подхода, особенно если это на самом деле простой вопрос.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2015, 12:31     Изменить размер трехмерного вектора
Посмотрите здесь:

C++ Размер двумерного вектора
C++ Размер вектора
C++ Как узнать размер двумерного вектора?
Размер вектора и вывод элементов C++
C++ Размер вектора
как объявить что размер вектора равен нулю? C++
Как установить размер вектора не заполняя его элементами? C++
C++ Выделить память для трехмерного массива и изменить индексы начального элемента массива
C++ Получить размер вектора
Объяснить, почему размер вектора остаётся нулевым C++
Размер вектора всегда равен нулю C++
C++ Как вывести размер вектора

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

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

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

Добавлено через 3 минуты
Спасибо, я проверил и на самом деле, можно каждой строке-вектору дать свой размер, отличающийся от других строк-векторов.
ValeryS
Модератор
6505 / 4971 / 459
Регистрация: 14.02.2011
Сообщений: 16,471
31.07.2015, 13:15     Изменить размер трехмерного вектора #4
если задать массив фиксированного размера,то увеличится быстродействие, но теряешь память
что важнее решать разработчику
а вообще судя по описанию это классический прореженный массив, почитай что-нибудь про них
Yandex
Объявления
31.07.2015, 13:15     Изменить размер трехмерного вектора
Ответ Создать тему
Опции темы

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