Аватар для SaynorPRO
11 / 11 / 5
Регистрация: 05.10.2016
Сообщений: 122

Оператор разыменования(*) значительно замедляет программу. Почему?

15.05.2017, 19:37. Показов 4649. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему вот такой код
C++
1
2
3
4
5
6
string a, b;
for (/*долго*/) {
  if (a[0] < b[0]) {
   /* сделать что-нибудь */
  }
}
Быстрее такого
C++
1
2
3
4
5
6
string a, b;
for (/*долго*/) {
  if (*a.begin() < *b.begin()) {
   /* сделать что-нибудь */
  }
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.05.2017, 19:37
Ответы с готовыми решениями:

ORDER BY Значительно замедляет запрос
Всем привет. Проблема в том что если я добавляю в запрос ORDER BY он начинает значительно дольше выполнятся - например без ORDER BY он...

Оператор разыменования
Почему когда выделяем динамическую память для одной переменной, то, чтобы записать туда значение, мы используем оператор разыменования (*),...

Как перегрузить оператор разыменования *
Как перегрузить оператор разыменования?

24
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
16.05.2017, 14:28
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от SaynorPRO Посмотреть сообщение
Что это значит? По-вашему лучше избегать использования итераторов?
Это значит то же самое, что написал я
Цитата Сообщение от MrGluck Посмотреть сообщение
А асм выхлоп смотреть пробовали? Показатели отличаются и в релизе и в дебаге?
Смотрите ассемблер, сравнивайте результат.
1
284 / 232 / 114
Регистрация: 07.09.2016
Сообщений: 584
16.05.2017, 14:33
запустите тот тест, который я запостил. увидите вывод о том, что та или иная строка пустая. и далее по коду у пустых строк вы пытаетесь взять первый символ. почему это в случае с [] прокатывает - я не знаю.
0
 Аватар для GoldenId
142 / 143 / 64
Регистрация: 11.11.2010
Сообщений: 877
Записей в блоге: 10
16.05.2017, 17:35
Цитата Сообщение от Kastaneda Посмотреть сообщение

Не по теме:


#ifndef же есть )

Не по теме:

Да как-то набирал, само вставилось так )



Добавлено через 3 минуты
Цитата Сообщение от MrGluck Посмотреть сообщение
Можно смело убрать, ifstream и ofstream - объекты RAII, они при уничтожении сами освободят ресурсы.
А можно как-то сделать, чтобы не приходилось каждый раз при посыле переключать
C++
1
#define RELEASE
? Затрудняюсь точнее сформулировать.
0
21 / 21 / 10
Регистрация: 11.09.2015
Сообщений: 103
16.05.2017, 18:03
SaynorPRO, если у тебя есть возможность использовать компилятор микрософт 2015, то "лучше" тебе посмотреть тебе посмотреть мое предыдущее сообщение (#10).
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
16.05.2017, 18:22
Цитата Сообщение от GoldenId Посмотреть сообщение
А можно как-то сделать, чтобы не приходилось каждый раз при посыле переключать
Перенаправлять потоки при вызове программы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.05.2017, 18:22

Что такое оператор разыменования и арифметика указателей для продвижения по массиву?
Доброго времени суток, в домашнем задании попались такие термины,в интернете смотрел - ничего не понял. Можете скинуть примитивные ...

Использовать в программе арифметику указателей для продвижения по массиву, а также оператор разыменования
Доброго времени суток, подходит ли мой код под условия задачи?(Использование арифметики продвижения по массивам и присутствие оператора...

Почему PFD_DOUBLEBUFFER замедляет работу?
Доброго времени суток. Последние несколько часов открываю для себя плюшки OpenGL, всё конечено круто, но в ходе тестирования обнаружилось,...

Почему не происходит разыменования нулевого указателя?
вот думаю, почему сия конструкция не вылетает: #define offsetof(type, member) (size_t)(&amp;(((type*)nullptr)-&gt;member))... видимо не...

Почему результат выводится без разыменования указателя?
char *ptr = &quot;hello&quot;; char *ptr это указатель? Указатель. А указатель это переменная которая содержит адрес данных. Почему тогда при...


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

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

Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru