Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370

Массив: Что быстрее: mass[n] или *(mass+n)?

10.07.2012, 14:58. Показов 7971. Ответов 51
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что быстрее: mass[n] или *(mass+n) и стоит ли заморачиваться по этому поводу?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.07.2012, 14:58
Ответы с готовыми решениями:

динамичекий двумерный мас type *mass
здрасти товарищи кодеры, нужны вашы знания в созданиях двумерного массива, но есть условие, создавать не как обычно type **mass ,а...

Что быстрее использовать, массив э-в, или указатель на массив э-в?
уважаемые, что быстрее использовать, массив э-в, или указатель на массив э-в? или без разницы? С одной стороны обращается все к той же...

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

51
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
10.07.2012, 21:47
Студворк — интернет-сервис помощи студентам
Ребят ну вы так и не ответили,не ужели через указатель не быстрее ?
Нет не быстрее уже ответели давно.

По крайней мере если речь идет о массивах, а не о контейнерах.
1
 Аватар для xADMIRALx
70 / 64 / 5
Регистрация: 09.06.2012
Сообщений: 291
10.07.2012, 21:57
От блин,а я то надеюсь на то что указатели быстрее,всегда старался создать лишний указатель присвоить ему адрес первого элемента и инкеминтировать его

кто подскажет почему вылазиет ошибка вот в таком коде ?
C++
1
2
3
4
5
6
    int m[5] = {3,2,6,7,8};
    int *a = new int;
    *a = 0;
        for (int i =0 ; i < 5;++i,++a)
            m[*a]++;
    delete a;
0
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
10.07.2012, 21:58  [ТС]
xADMIRALx, *(++a)

Добавлено через 20 секунд
xADMIRALx, ты изменяешь адрес указателя. а надо значение
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
10.07.2012, 22:24
Цитата Сообщение от xADMIRALx Посмотреть сообщение
От блин,а я то надеюсь на то что указатели быстрее,всегда старался создать лишний указатель присвоить ему адрес первого элемента и инкеминтировать его
Чтобы ускорить программу на одну наносекунду?
0
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
10.07.2012, 22:34  [ТС]
Evg, нано ли?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
10.07.2012, 22:38
Цитата Сообщение от Ksan Посмотреть сообщение
Evg, нано ли?
1 наносекунда - это 2-3 такта. Ну да, там цикл, так что это будет не 1 наносекунда, а 1 микросекунда, что, разумеется, в корне меняет дело
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
10.07.2012, 22:39
А почему собственно этот код должен быть быстрее?
вместо одной операции
C++
1
++i
делается две
C++
1
++i,*(++a)
1
 Аватар для xADMIRALx
70 / 64 / 5
Регистрация: 09.06.2012
Сообщений: 291
10.07.2012, 22:51
Evg
наверн

Спасибо,разобрался с указателями
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
10.07.2012, 22:55
Объясни, на кой чёрт ты выделяешь динамически один int и каждый раз обращаешься к нему по косвенности, если можно просто завести ещё одну переменную. Если тебе хочется пройтись по списку элементов при помощи указателя, то делается это так:

C++
int m[5] = {3,2,6,7,8};
for (int *a = m; a < (m+5) ; a++)
  cout << *a << " ";
1
 Аватар для xADMIRALx
70 / 64 / 5
Регистрация: 09.06.2012
Сообщений: 291
10.07.2012, 23:38
отвлекся на указатели забыл про int i,
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
11.07.2012, 00:27
Цитата Сообщение от Evg Посмотреть сообщение
Варианты без оптимизация вообще не имеет смысла сравнивать, когда речь идёт о том, какая конструкция быстрее.
С практической точки зрения - нет, чисто теоретически - да. И как видно разница между этими двумя конструкциями есть. А о том, что нет необходимости заморачиваться по поводу написания того или иного варианта я написал ещё в первом своём посте.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
11.07.2012, 09:18
Цитата Сообщение от rangerx Посмотреть сообщение
чисто теоретически - да
Чисто теоретически компилятор может по разному построить конструкции "a+b" и "b+a". А тому всё то, что написано по разному в исходнике, теоретически всегда может быть построено по разному. А потому нет смысла в подобном сравнении
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.07.2012, 09:18
Помогаю со студенческими работами здесь

Run-Time Check Failure #2 - Stack around the variable 'mass' was corrupted
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;rus&quot;); int a, *pa; ...

Программа выдает ошибку при выводе структуры в функции Vyvod(int N, struct vehicle*mass)
#include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstdlib&gt; #include&lt;fstream&gt; #include &lt;iomanip&gt; using namespace std; struct...

Undefined reference to Mass::~Mass
Здравствуйте, совсем уже отчаялся... Помогите пожалуйста исправить данную ошибку. Выдает её в 24 строке. Необходимо создать динамический...

Записать данные из dataGridView1 в массив mass
нужно записать данные из dataGridView1 в массив mass. при нажатии на кнопку выдает ошибку:Необработанное исключение типа...

Создайте одномерный массив C(mass3), который содержит элементы,присутствующие в обоих массивах A(mass) и B(mass2)
Создайте одномерный массив C(mass3), который содержит элементы,присутствующие в обоих массивах A(mass) и B(mass2).Помогите пожалуйста. ...


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

Или воспользуйтесь поиском по форуму:
52
Ответ Создать тему
Новые блоги и статьи
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru