0 / 0 / 0
Регистрация: 29.07.2019
Сообщений: 10
|
||||||
1 | ||||||
Двумерный вектор14.01.2020, 23:38. Показов 8729. Ответов 6
Всем доброго времени суток, кто может, помогите разобраться с записью в двумерный вектор
Суть в том, что надо записать в двумерный вектор скажем значения типа int, но при этом мы не знаем какого размера будет вектор (количество столбцов, строк). В инете много примеров, но везде уже за ранние выставлены кол. столбцов и строк. Помогите пожалуйста разобраться.
0
|
14.01.2020, 23:38 | |
Ответы с готовыми решениями:
6
Сделайте, чтобы двумерный вектор обогнал двумерный массив при заполнении случайными числами Двумерный вектор Двумерный вектор в классе Запись в двумерный вектор |
Комп_Оратор)
|
|
15.01.2020, 00:02 | 2 |
MaxMart,сначала нужно понять как добавлять элементы в одномерный вектор. Потом осознать, что вектор может быть элементом вектора векторов.
То есть, как научитесь 3-х мерный создавать, 2-х мерный станет простым и доступным.
1
|
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
|
||||||
15.01.2020, 00:17 | 3 | |||||
Сообщение было отмечено MaxMart как решение
Решение
Я ещё понимаю аналогию "научитесь создавать 2-х мерный и поймёте как создать 3-х мерный", но вначале создавать 3-х мерный, а потом понимать 2-х мерный?)
MaxMart, допустим у нас есть vector<vector<int>> vec Он состоит из вектора векторов vec[i] - обращение к элементу vector<int>, а vec[i][j] в свою очередь обращение к int для того чтобы создать двумерный вектор, вначале нужно выделить память для подвекторов
1
|
AndryS1
|
15.01.2020, 00:22
#5
|
0
|
0 / 0 / 0
Регистрация: 29.07.2019
Сообщений: 10
|
|
15.01.2020, 00:26 [ТС] | 6 |
Я просто привык к массивам, что записываем в виде mas[i][j]. С вектором такое не прокатит, это совсем другое.
То есть нам нужно в двумерный вектор добавить(push_back) еще вектор, затем уже его заполнить с помощью все той же push_back?
0
|
Комп_Оратор)
|
|
15.01.2020, 00:40 | 7 |
Не по теме: В принципе не было бы возражений, но последние три цифры 616 запрещены стандартом напрочь. То есть, не вообще-то, а вообще -нет. Никак. 18 446 744 073 709 551 616 это строительное UB 8-) Не совсем. В плюсах 2-D массивы это массивы массивов. Тут есть общность. А разница такая же как между просто вектором и просто массивом. У массива размер - константа времени компиляции. То есть и у 2-х мерного сразу и мёртво задаются. А у вектора всё может изменяться. Динамическая по своей природе конструкция. Размеры могут отличаться в разных строках. Поэтому итерацию ведут не по заранее известному размеру, а пока не закончатся элементы в данной строке. Можно и так. А можно и списком инициализировать. Если тип элемента позволяет.
1
|
15.01.2020, 00:40 | |
15.01.2020, 00:40 | |
Помогаю со студенческими работами здесь
7
Двумерный вектор, ошибка Как задать двумерный вектор? Двумерный массив через вектор Двумерный вектор. Не работает reserve() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |