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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
www.ru
0 / 0 / 0
Регистрация: 27.11.2009
Сообщений: 3
#1

Передача динамических матриц в функцию - C++

27.11.2009, 20:26. Просмотров 1556. Ответов 4
Метки нет (Все метки)

Здравствуйте, ребята!

У меня очень простой вопрос.

Я работаю с очень большими матрицами. Они создаются в куче:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const N = 10000;
 
int **MA = new int * [N];
for(int i = 0; i < N; i++){
      MA[i] = new int[N];
}
 
...
 
 
for(int i = 0; i < N; i++){
      delete [] MA[i];
}
delete [] MA;
Как передать матрицу в подобную функцию:

C++
1
2
3
4
5
6
7
void InputMatrix(int M[][N]){
    for (int i = 0; i < N; i++){
        for (int j = 0; j < N; j++){
            M[i][j] = 1;
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2009, 20:26     Передача динамических матриц в функцию
Посмотрите здесь:

Инициализация динамических матриц в с++ - C++
Необходимо реализовать класс матриц, вот мой набросок: // Класс.cpp: определяет точку входа для консольного приложения. // ...

Организация программ по обработке динамических матриц - C++
Заданы матрицы: А(15,6), В(8,12), С(12,9). В каждой из матриц найти и удалить максимальные элементы строк. Последнему элементу каждой...

Перемножение матриц с использованием динамических массивов - C++
Всем здравствуйте) Программа не считает матрицу С (С=A*B). В чём дело не понимаю. #include &lt;iostream&gt; #include &lt;conio.h&gt; using...

Передача динамических массивов в функции - C++
Требования:Программа должна демонстрировать два варианта доступа к элементам массивов во вспомогательной функции: с помощью приведенного...

Класс для динамических матриц. После ввода элементов матрицы программа аварийно закрывается - C++
В программе я создал класс, отвечающий за ввод и вывод динамической матрицы. Однако после ввода элементов матрицы программа аварийно...

Передача динамических массивов в функции. А точнее отдельных частей - C++
Вопрос до жути простой, но мне не понять. К примеру я хочу передать в функцию отдельно одну строку, сумму элементов которой мне надо...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
27.11.2009, 20:33     Передача динамических матриц в функцию #2
да вроде так было
C++
1
void Func(int **A, const int N, const int M)
www.ru
0 / 0 / 0
Регистрация: 27.11.2009
Сообщений: 3
27.11.2009, 21:17  [ТС]     Передача динамических матриц в функцию #3
а есть какое-то приведение типов? (ясное дело чуть подправить тип матрицы)...
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
27.11.2009, 21:23     Передача динамических матриц в функцию #4
не понял вопроса. приведения к чему? что чего хотите добиться?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2009, 23:46     Передача динамических матриц в функцию
Еще ссылки по теме:

Реализовать функцию сложения матриц - C++
Дорогие друзья у меня такой вопрос я написал класс class Matrix { private: int size; int det; double** matrix;

Написать функцию умножения матриц - C++
Условие : даны 3 матрицы . Определить функцию которая перемножит 2 матрицы. С помощью неё произвести умножение трех данных матриц. ...

Написать функцию вычисления произведения прямоугольных матриц - C++
Написать функцию вычисления произведения прямоугольной матрицы A размера k × m на прямоугольную матрицу B размера m × n. Всем привет,...

Написать функцию, вычисляющую произведение двух матриц - C++
N.3.Написать функцию, вычисляющую произведение двух матриц.

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

Транспонирование матриц. Вынести часть кода в отдельную функцию - C++
/* транспонировать матрицу, используя функции. я матрицу транспонировал, а через функцию не знаю как правильно делать, нужна помощь */ ...


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

Или воспользуйтесь поиском по форуму:
www.ru
0 / 0 / 0
Регистрация: 27.11.2009
Сообщений: 3
27.11.2009, 23:46  [ТС]     Передача динамических матриц в функцию #5
не хотелось бы менять интерфейс передачи параметров в функции (а их много) а за ним и сам код функций.

Добавлено через 7 минут
Наверное придется создавать свой класс матриц, в конструкторе распределить память методом new, в деструкторе освободить методом delete и перегрузить операцию []. Тогда в функциях поменяется только заголовок (а именно имя типа матрицы), а код останется неизменным. Насколько эффективно такое решение?

Добавлено через 1 час 18 минут
Где-то так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class matrix{
    int N;
    int **Ref;
public:
    matrix(int newN){
        N = newN;
        Ref = new int * [N];
        for(int i = 0; i < N; i++){
            Ref[i] = new int[N];
        }
    }
 
    ~matrix(){
        for(int i = 0; i < N; i++){
            delete [] Ref[i];
        }
        delete [] Ref;
    }
 
    int *operator[](int i){
        return Ref[i];
    }
};
Yandex
Объявления
27.11.2009, 23:46     Передача динамических матриц в функцию
Ответ Создать тему
Опции темы

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