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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.62
Kadet89
2 / 2 / 0
Регистрация: 18.09.2009
Сообщений: 107
#1

Создать массив векторов - C++

03.08.2011, 22:00. Просмотров 5935. Ответов 7
Метки нет (Все метки)

Подскажите как создать константный массив вектров. Размер массива зараннее известен, не меняется в процессе работы приложения и равен 50. Нужно создать в стеке, т.е. без выделения памяти.
Чтобы можно было заполнять вот так:
C++
1
massiv_vectorov[i].push_back(x);
Где i - индекс вектора в массиве, x - добаляемый в его конец объект.
Подскажите как сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.08.2011, 22:00     Создать массив векторов
Посмотрите здесь:

Массив векторов - C++
Помогите разобраться , не знаю как создать массив из структур: #include <iostream> #include <cmath> using namespace std; class...

Массив векторов - C++
Как мне создать масив, хранящий в себе вектора??? Вот допустим есть два вектора vector <Objects> s1; // Вектор хранит в...

Создать класс векторов поддерживающий указанные операции - C++
Буду очень благодарен если кто поможет. А то я в классах не очень соображаю.

Создать шаблонную матрицу как вектор векторов - C++
Здравствуйте! Пишу программу по матрицам. При чем матрица создается здесь как вектор векторов. Не могу никак справиться с ошибкой, не...

Массив трехкомпонентных векторов - C++
Суть такая. Есть вектор из трех компонент (допустим int). Можно создать три массива из int, но хочется сохранить структуру, поскольку так...

Массив указателей на кучу векторов - C++
нужно создать n - ое количество векторов. Как их объявить??? подскажите плиз)))))

Двумерный массив векторов. Объявить и заполнить. - C++
как правильно объявлять и заполнять двумерный массив вектор в классах? struct Map { Map() { ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,250
Записей в блоге: 1
Завершенные тесты: 1
03.08.2011, 22:04     Создать массив векторов #2
А что мешает сделать так
C++
1
std::vector<int> arr[50];
тип, который будет хранится в векторе, тоже ведь известен заранее?
Kadet89
2 / 2 / 0
Регистрация: 18.09.2009
Сообщений: 107
03.08.2011, 22:08  [ТС]     Создать массив векторов #3
Да, известен, int.
Я просто в манах найти не могу, везде написано только как задать начальный размер. Сейчас попробую ваш вариант, спасибо.
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,453
Записей в блоге: 17
04.08.2011, 16:13     Создать массив векторов #4
А если создать класс в котором будет вектор ваших элементов типа int, а потом создать вектор который будет содержать объекты этого класса?
Ну например на случай если размер не известен...
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
04.08.2011, 16:28     Создать массив векторов #5
Цитата Сообщение от Avazart Посмотреть сообщение
А если создать класс в котором будет вектор ваших элементов типа int, а потом создать вектор который будет содержать объекты этого класса?
Ну например на случай если размер не известен...
C++
1
vector<vector<int> > vec(N, vector<int>(M));
Сыроежка
Заблокирован
04.08.2011, 16:45     Создать массив векторов #6
Цитата Сообщение от Kadet89 Посмотреть сообщение
Подскажите как создать константный массив вектров. Размер массива зараннее известен, не меняется в процессе работы приложения и равен 50. Нужно создать в стеке, т.е. без выделения памяти.
Чтобы можно было заполнять вот так:
C++
1
massiv_vectorov[i].push_back(x);
Где i - индекс вектора в массиве, x - добаляемый в его конец объект.
Подскажите как сделать?
У вас противоречивые условия! С одной стороны, вы хотите создать константный массив векторов, с другой стороны, вы приводите пример, где ваш константный массив изменяется функцией push_back.

Наверное вы имели в виду не константный массив, а массив фиксированного размера?

Тогда есть два варианта. Первый - это создать именно массив:

C++
1
std::vector<int> a[50];
Второй - это использовать вместо масива любой контейнер. Например,

C++
1
std::vector<std::vector<int> > v( 50 );
или

C++
1
std::list<std::vector<int> > l( 50 );
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,453
Записей в блоге: 17
05.08.2011, 00:21     Создать массив векторов #7
vector<vector<int> > vec(N, vector<int>(M));
Хорошо а как организовать push_back( ... ) ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.08.2011, 00:56     Создать массив векторов
Еще ссылки по теме:

Локальный или глобальный массив векторов - C++
Везде в литературе рекомендуется создавать локальные объекты. Основные аргументы - они легче оптимизируются и безопаснее. У меня такия...

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

Получить массив C, содержащий все элементы векторов a и b без повторений - C++
Пусть даны два целочисленных одномерных массива ai и bj (i=1, ..., n ,j=1, ..., k). Получить массив C, содержащий все элементы векто-ров...

как создать вектор из векторов и как потом к нему обращаться? - C++
Банальный вопрос - как создать вектор из векторов и как потом к нему обращаться? вот vector&lt;int&gt; a; - это, понятное дело, вектор а, а вот...

Дан массив. Создать массив 2 из четных чисел первого массива - C++
Задача: Дан массив. Создать новый массив из чётных чисел исходного массива. #endif #include &lt;stdio.h&gt; #include &lt;iostream.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
05.08.2011, 00:56     Создать массив векторов #8
Цитата Сообщение от Avazart Посмотреть сообщение
Хорошо а как организовать push_back( ... ) ?
push_back элемента в i-й вектор
C++
1
vec[i].push_back(...);
Yandex
Объявления
05.08.2011, 00:56     Создать массив векторов
Ответ Создать тему
Опции темы

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