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

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

Войти
Регистрация
Восстановить пароль
 
Андрей2011
29 / 23 / 2
Регистрация: 18.01.2011
Сообщений: 359
#1

Что быстрее использовать, массив э-в, или указатель на массив э-в? - C++

22.02.2012, 08:38. Просмотров 670. Ответов 5
Метки нет (Все метки)

уважаемые, что быстрее использовать, массив э-в, или указатель на массив э-в? или без разницы? С одной стороны обращается все к той же памяти.
Я решил протестировать и по результатам тестов выяснил что оно одинаково.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2012, 08:38     Что быстрее использовать, массив э-в, или указатель на массив э-в?
Посмотрите здесь:

error C2109: для индекса требуется массив или указатель. C++
Что быстрее массив или файл C++
Error C2109: для индекса требуется массив или указатель C++
error C2109: для индекса требуется массив или указатель C++
C++ Error C2109: для индекса требуется массив или указатель
C++ Что лучше использовать vector или массив
C++ Массив: Что быстрее: mass[n] или *(mass+n)?
C++ Компилятор ругается, что для индекса требуется массив или указатель
Не работает динамический массив в классе: что раньше, указатель или размер? C++
Error C2109: для индекса требуется массив или указатель C++
C++ Что лучше использовать для строк? Массив char или же string?
Error C2109: для индекса требуется массив или указатель (найти причины возникновения ошибки) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ШКІПЕР
94 / 94 / 7
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
22.02.2012, 08:42     Что быстрее использовать, массив э-в, или указатель на массив э-в? #2
Андрей2011, когда в куда-то передаете ? Использование указателя на массив элементов даст экономию памяти, а когда еще один массив - это + затрата времени на копирование. Наверняка Вы тестировали на массиве этак "элементов 10", а взять что-то посерьезнее ?
Андрей2011
29 / 23 / 2
Регистрация: 18.01.2011
Сообщений: 359
22.02.2012, 08:53  [ТС]     Что быстрее использовать, массив э-в, или указатель на массив э-в? #3
Я делал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 TTime time,time2;
 time = Time();
 short Mass[300000],*p_Mass;
 
 p_Mass= Mass;
 for (unsigned int i = 0; i < 300000; i++)
 {
   Mass[i]=i+1; //или p_Mass[i]=i+1;
   Form1->ListBox1->Items->Add(Mass[i]);
 }
 time2 = Time()-time;
 
 
Form1->ListBox1->Items->Add(time2);
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
22.02.2012, 09:47     Что быстрее использовать, массив э-в, или указатель на массив э-в? #4
Массив и так реализуется с помощью указателя и при адресации элементов является указателем. Так что ни какой выгоды варианты
C++
1
type a[n];
и
C++
1
type *a;
(под type подразумевается некоторый тип), в сравнении друг с другом не имеют, выгоду может содержать только инкремент/декремент адреса в сравнении с инкрементом/декрементом индекса и последующем вычислением адреса в операторе
C++
1
[]
. Но и сравнение индекса с нолём выгоднее сравнения адреса с указателем на массив. Но оба варианта декларации в равной мере компатибабельны с обоими вариантами адресации. Разница же только в том, что в одном случае указатель на начало массива неявный, а сам массив явный, а в другом наоборот.
_engineer_
115 / 72 / 2
Регистрация: 23.01.2012
Сообщений: 186
22.02.2012, 09:54     Что быстрее использовать, массив э-в, или указатель на массив э-в? #5
Раньше тоже задавался этим вопросом, но спросить было не кого, поэтому просил компилятор сделать ассемблерный листинг кода и уже в нем смотрел.
ИМХО:
через указатель быстрей, если современные компиляторы не научились и это оптимизировать.
Андрей2011
29 / 23 / 2
Регистрация: 18.01.2011
Сообщений: 359
22.02.2012, 10:02  [ТС]     Что быстрее использовать, массив э-в, или указатель на массив э-в? #6
Спасибо, уважаемые.
Yandex
Объявления
22.02.2012, 10:02     Что быстрее использовать, массив э-в, или указатель на массив э-в?
Ответ Создать тему
Опции темы

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