0 / 0 / 0
Регистрация: 14.06.2014
Сообщений: 2
|
|
1 | |
Что оптимальнее: передавать матрицу как аргумент, или же формировать её внутри функции?14.06.2014, 03:05. Показов 1235. Ответов 9
Метки нет Все метки)
(
Добрый вечер, уважаемые форумчане!
Я столкнулась с таким вопросом в процессе оптимизации моей программы: что оптимальнее, передавать массив (матрица 5 столбцов на ~8000 строк элементов, все ячейки пустые, кроме первой строки) в функцию как аргумент, или же экономнее будет передать как аргумент массив из 4х известных мне элементов, а саму матрицу формировать уже внутри функции? Будет ли вообще какая-то ощутимая разница? Для решения задачи приемлемы оба варианта. Функция реализует алгоритм численного решения Рунге-Кутты для системы уравнений, поэтому массив элементов формируется внутри.
0
|
|
14.06.2014, 03:05 | |
Ответы с готовыми решениями:
9
Передавать при создании класса, переменную - аргумент функции Что лучше передавать из функции в функцию — массив переменных или переменные по одной?
|
31 / 31 / 19
Регистрация: 03.05.2011
Сообщений: 84
|
|
14.06.2014, 10:09 | 3 |
В данном случае разницы нет, но, если матрица не меняется, то можно ее передать как
const matrix &mymatrix, в таком случае не будет тратиться время и память на копирование.
1
|
![]() 4845 / 3857 / 1599
Регистрация: 24.04.2014
Сообщений: 11,317
|
|
14.06.2014, 10:44 | 4 |
![]() Решение
при передачи в функцию массив никогда не будет копироваться, передаются указатель на первый элемент
Kiddeness, так что передавай массив и размерность матрицы
1
|
0 / 0 / 0
Регистрация: 14.06.2014
Сообщений: 2
|
|
14.06.2014, 14:25 [ТС] | 5 |
Большое спасибо за ответы! С:
0
|
2761 / 1915 / 569
Регистрация: 05.06.2014
Сообщений: 5,571
|
|
14.06.2014, 15:31 | 6 |
0
|
![]() 4845 / 3857 / 1599
Регистрация: 24.04.2014
Сообщений: 11,317
|
|||||||||||
14.06.2014, 15:58 | 7 | ||||||||||
ты плохо изучил массивы, в том то и дело что массив в функцию передается ВСЕГДА в виде указателя на первый элемент
попробуй вот такой код, и сравни адреса одного и тогоже элемента:
но даже если так, то все равно передается указатель
0
|
2761 / 1915 / 569
Регистрация: 05.06.2014
Сообщений: 5,571
|
|
14.06.2014, 16:04 | 8 |
Хм, действительно, мой косяк.
0
|
![]() 4845 / 3857 / 1599
Регистрация: 24.04.2014
Сообщений: 11,317
|
|
14.06.2014, 16:06 | 9 |
можно конечно "заставить" копировать массив, если он является элементом класса, и в конструктор копирования реализовать копирование массива, но тут в функцию уже передается все-таки не массив, а объект некоторого класса
0
|
Ушел с форума
![]() |
|
14.06.2014, 17:27 | 10 |
Оптимальнее будет не гадать, а проверить каким-нибудь профайлером,
который даст точный ответ.
0
|
14.06.2014, 17:27 | |
Помогаю со студенческими работами здесь
10
PostDelayed можно ли в Runnable передавать аргумент, как-то так? Что по скорости оптимальнее ArrayList или List<T> Что оптимальнее игровой цикл или таймер?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |