-40 / 1 / 0
Регистрация: 14.11.2018
Сообщений: 617
|
|
1 | |
Как создать двумерную матрицу через vector?27.11.2019, 13:29. Показов 9698. Ответов 23
Понадобилась в середине проге создать двумерную матрицу. Чтобы не заботиться об очистке, решил использовать <vector>, но не знаю как создать двумерную
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
27.11.2019, 13:29 | |
Ответы с готовыми решениями:
23
Из заданного четного числа создать двумерную матрицу Как инициализировать двумерную матрицу натуральными логарифмами? Как передать целочисленную матрицу типа std::vector<std::vector<int> > в функцию? Записать элементы одномерного массива в двумерную матрицу одним циклом |
5675 / 3120 / 1300
Регистрация: 07.02.2019
Сообщений: 7,824
|
|
27.11.2019, 13:34 | 2 |
можно как vector<vector<тип_элементов>>, а можно просто vector<тип_элементов>, а индексация как i*<количество столбцов> + j
0
|
-40 / 1 / 0
Регистрация: 14.11.2018
Сообщений: 617
|
|
27.11.2019, 13:57 [ТС] | 3 |
zayats80888, Типа vector<vector<int>>?
0
|
5675 / 3120 / 1300
Регистрация: 07.02.2019
Сообщений: 7,824
|
|
27.11.2019, 14:00 | 4 |
типа да
0
|
Just Do It!
|
||||||
27.11.2019, 14:15 | 5 | |||||
1
|
693 / 303 / 99
Регистрация: 04.07.2014
Сообщений: 842
|
||||||
27.11.2019, 14:22 | 6 | |||||
1
|
Just Do It!
|
||||||
27.11.2019, 14:44 | 7 | |||||
Так как число и строк и количество элементов в строках могут динамически меняться,
и иметь разное количество, то лучше с таким массивом работать так:
1
|
фрилансер
4446 / 3957 / 866
Регистрация: 11.10.2019
Сообщений: 10,453
|
|
27.11.2019, 14:58 | 8 |
XLAT, с одномерным вектором то пошустрее всё будет
1
|
Just Do It!
|
|
27.11.2019, 15:39 | 9 |
преждевременная оптимизация есть зло.
да, кстати, речь о двумерных массивах, расходы на вычисления индекса одномерного массива по номеру строки вы почему списали? а в тиках проца сколько тактов эта разница? давайте ка, барин, мне перфоманс тестик замутите ![]()
1
|
фрилансер
4446 / 3957 / 866
Регистрация: 11.10.2019
Сообщений: 10,453
|
|||||||||||
27.11.2019, 16:01 | 10 | ||||||||||
а, ну ок
![]()
для вложенного: сложение, косвенная адресация, сложение, косвенная адресация по-моему две адресации перевешивают одну А вот пересоздание и копирование с одномерным явно меньше работы потребуют
2
|
Just Do It!
|
|
27.11.2019, 16:07 | 11 |
не сходится:
для одномерного: умножение, сложение, косвенная адресация для вложенного: косвенная адресация, косвенная адресация Где вы нашли во вложенном(arr**) массиве два сложения? (я про вектор векторов, если чо что там в мапе, я не в курсе.)
1
|
693 / 303 / 99
Регистрация: 04.07.2014
Сообщений: 842
|
|
27.11.2019, 16:27 | 12 |
Точно так же как и запоздалая оптимизация.
Массив массивов для матриц - это классический пример именно запоздалой оптимизации. Это и медленнее (Оптимизация доступа к памяти) и больше кода (чем со специальным классом аля Matrix) и нормальное решение простое как утюг.
3
|
Just Do It!
|
|
27.11.2019, 16:49 | 13 |
запоздалая это хорошо, ведь здорово что у вас есть что оптимизировать - можно платную подписку организовать за консультации. )
а вот преждевременная(когда ничего еще нет) вам тупо проект угробит. Добавлено через 3 минуты AlexVRud, запустил ваш тест, не для простых смертных: надо лезть в сырцы чтобы понять чо там ваще тестируется.
1
|
-40 / 1 / 0
Регистрация: 14.11.2018
Сообщений: 617
|
||||||
27.11.2019, 17:07 [ТС] | 14 | |||||
zayats80888,Вот ток непонятно как обращаться к нему для заполнения/ Вот так?
0
|
-40 / 1 / 0
Регистрация: 14.11.2018
Сообщений: 617
|
||||||
27.11.2019, 17:17 [ТС] | 16 | |||||
XLAT, Неужели через такую конструкцию?
0
|
Just Do It!
|
|||||||||||
27.11.2019, 17:40 | 17 | ||||||||||
![]() Решение
или вот:
можно и по другому, но сути это не изменит. Добавлено через 8 минут Гуру77777, вот такая инициализация вам может понравиться больше: примерно этого вы и хотели.
1
|
фрилансер
4446 / 3957 / 866
Регистрация: 11.10.2019
Сообщений: 10,453
|
|
27.11.2019, 18:04 | 18 |
первое сложение - элемент по индексу в массиве массивов. Второе сложение - индекс во вложенном.
с векторами то же самое. с мапой будет медленнее, чем с массивами. ![]()
1
|
Just Do It!
|
||||||
27.11.2019, 18:26 | 19 | |||||
вот пример, чтоб не путаться:
0
|
фрилансер
4446 / 3957 / 866
Регистрация: 11.10.2019
Сообщений: 10,453
|
|
27.11.2019, 18:34 | 20 |
XLAT, так а разыменование то чего не считаешь? Самая тяжёлая тут операция.
В строке 3 их две штуки. В строке 8 - всего одна
0
|
27.11.2019, 18:34 | |
Помогаю со студенческими работами здесь
20
Как создать vector внутри класса? Как сделать двумерную матрицу с доступом не через int индексы, а через String? Как создать двумерную матрицу из данных, хранящихся в файле Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |