Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Андрей2011
171 / 23 / 4
Регистрация: 18.01.2011
Сообщений: 359
1

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

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

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

Что быстрее массив или файл
Привет! Я тут занялся обработкой содержимого текстовых файлов для этого пишу...

Не работает динамический массив в классе: что раньше, указатель или размер?
Подскажите пожалуйста где ошибка class arar { int*arr, size; public:...

Компилятор ругается, что для индекса требуется массив или указатель
У меня программа делает, по крайней мере, должна делать следующее: заполнять,...

Что лучше использовать vector или массив
Что лучше использовать и когда vector или массив ?

Массив: Что быстрее: mass[n] или *(mass+n)?
Что быстрее: mass или *(mass+n) и стоит ли заморачиваться по этому поводу?

5
ШКІПЕР
95 / 95 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
22.02.2012, 08:42 2
Андрей2011, когда в куда-то передаете ? Использование указателя на массив элементов даст экономию памяти, а когда еще один массив - это + затрата времени на копирование. Наверняка Вы тестировали на массиве этак "элементов 10", а взять что-то посерьезнее ?
1
Андрей2011
171 / 23 / 4
Регистрация: 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);
0
taras atavin
4204 / 1767 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
22.02.2012, 09:47 4
Массив и так реализуется с помощью указателя и при адресации элементов является указателем. Так что ни какой выгоды варианты
C++
1
type a[n];
и
C++
1
type *a;
(под type подразумевается некоторый тип), в сравнении друг с другом не имеют, выгоду может содержать только инкремент/декремент адреса в сравнении с инкрементом/декрементом индекса и последующем вычислением адреса в операторе
C++
1
[]
. Но и сравнение индекса с нолём выгоднее сравнения адреса с указателем на массив. Но оба варианта декларации в равной мере компатибабельны с обоими вариантами адресации. Разница же только в том, что в одном случае указатель на начало массива неявный, а сам массив явный, а в другом наоборот.
1
_engineer_
117 / 74 / 6
Регистрация: 23.01.2012
Сообщений: 186
22.02.2012, 09:54 5
Раньше тоже задавался этим вопросом, но спросить было не кого, поэтому просил компилятор сделать ассемблерный листинг кода и уже в нем смотрел.
ИМХО:
через указатель быстрей, если современные компиляторы не научились и это оптимизировать.
1
Андрей2011
171 / 23 / 4
Регистрация: 18.01.2011
Сообщений: 359
22.02.2012, 10:02  [ТС] 6
Спасибо, уважаемые.
0
22.02.2012, 10:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2012, 10:02

Что лучше использовать библиотеку <vector> или динамический массив
Что лучше использовать библиотеку &lt;vector&gt; или динамический массив

Что лучше использовать для строк? Массив char или же string?
Только не давно начал изучать с++, подскажите что лучше использовать для строк?...

Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив.
Пишу в Microsoft Visual Studio -&gt;Win32 Console application -&gt;C++....


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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