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

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

Войти
Регистрация
Восстановить пароль
 
boris.102
Сообщений: n/a
#1

Как оптимально обратиться в трем матрицам разной размерности - C++

13.06.2012, 13:29. Просмотров 363. Ответов 1
Метки нет (Все метки)

Имею несколько (пока з штуки) двумерных массивов. Размер массивов разный!
В зависимости от некоторого индекса, должен обращаться к одному из этих массивов. Алгоритм работы с массивом довольно длинный, поэтому не хочется плодить три разных ветки в программе, а вот как передать именно нужный массив - не знаю...
Если бы массивы были одномерные, возможно получилось бы просто присвоить некоему указателю имя массива. А из-за двумерности не получается.
Уточняю - массивы не динамические, созданы и определены ранее.

extern u32 ris1[NUM_R1][7];
extern u32 ris2[NUM_R2][15];
extern u32 ris3[NUM_R3][31];

Добавлено через 2 часа 43 минуты
один вариант я знаю:
объявить дополнительный (буферный) массив максимального размера из использованных и в зависимости от индекса поэлементно переписать в него нужный массив.
Но это как то некрасиво
как бы тут указатель на массив передать и обойтись без этого буфера?
Когда массив одномерный вроде можно присвоить указателю имя массива, но вот с двумерным не знаю как быть...
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2012, 13:29     Как оптимально обратиться в трем матрицам разной размерности
Посмотрите здесь:

Общая программа по матрицам C++
C++ Обработка массивов разной размерности
C++ Обработка массивов разной размерности.
Обработка массивов разной размерности C++
Даны два одномерных массива разной размерности. найти элементы принадлежащие и тому и другому массиву C++
Задача по матрицам правильно не работает C++
Как вывести длину столбца в динамическом массиве с разной длинной строк? C++
C++ Оптимально поделить шоколадку
C++ Как сделать, чтобы два проекта с разной кодировкой работали в одном объединённом проекте?
Как поместить строки разной длинны в двумерный массив? (файловый ввод/вывод) C++
3 задачки по матрицам C++
C++ Как создать одномерный динамический массив, элементами которого будут одномерные массивы разной длины?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soft.creator
103 / 103 / 4
Регистрация: 17.10.2010
Сообщений: 283
13.06.2012, 14:48     Как оптимально обратиться в трем матрицам разной размерности #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Я бы сделал так:
C++
1
2
3
4
5
6
7
8
9
10
void useArray(u32* arr, int stride) 
{
    int x = ..., y = ...; // тут мы получаем столбец и строку элемента, с которым работаем
    element = arr + y * stride + x; // двумерные массивы в C/C++ хранятся по строкам
    printf("%d", *element);
}
 
useArray(&ris1[0][0], 7);
useArray(&ris2[0][0], 15);
useArray(&ris3[0][0], 31);
Yandex
Объявления
13.06.2012, 14:48     Как оптимально обратиться в трем матрицам разной размерности
Ответ Создать тему
Опции темы

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