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

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

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

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

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

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

Создать класс для обработки векторов разность векторов норму векторов - C++
Создать класс для обработки векторов разность векторов норму векторов

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

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

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

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

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

7
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
03.08.2011, 22:04 #2
А что мешает сделать так
C++
1
std::vector<int> arr[50];
тип, который будет хранится в векторе, тоже ведь известен заранее?
1
Kadet89
2 / 2 / 0
Регистрация: 18.09.2009
Сообщений: 107
03.08.2011, 22:08  [ТС] #3
Да, известен, int.
Я просто в манах найти не могу, везде написано только как задать начальный размер. Сейчас попробую ваш вариант, спасибо.
0
Avazart
Эксперт С++
7235 / 5431 / 303
Регистрация: 10.12.2010
Сообщений: 24,133
Записей в блоге: 17
04.08.2011, 16:13 #4
А если создать класс в котором будет вектор ваших элементов типа int, а потом создать вектор который будет содержать объекты этого класса?
Ну например на случай если размер не известен...
0
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
04.08.2011, 16:28 #5
Цитата Сообщение от Avazart Посмотреть сообщение
А если создать класс в котором будет вектор ваших элементов типа int, а потом создать вектор который будет содержать объекты этого класса?
Ну например на случай если размер не известен...
C++
1
vector<vector<int> > vec(N, vector<int>(M));
1
Сыроежка
Заблокирован
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 );
0
Avazart
Эксперт С++
7235 / 5431 / 303
Регистрация: 10.12.2010
Сообщений: 24,133
Записей в блоге: 17
05.08.2011, 00:21 #7
vector<vector<int> > vec(N, vector<int>(M));
Хорошо а как организовать push_back( ... ) ?
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 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(...);
1
05.08.2011, 00:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.08.2011, 00:56
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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