Russian Qt Forum
Ноябрь 26, 2024, 19:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Константный итератор вместо обычного. Чистый С++  (Прочитано 14244 раз)
fisenkdima
Гость
« Ответ #15 : Ноябрь 18, 2013, 17:44 »

А вы напишите маленький тест и все увидите сами. Улыбающийся
Ничтожное (хотя я сомневаюсь что вы его заметите) снижение производительности на разименование никак не может сравниться с удобством и эффективностью умных указателей.
Ну тесты и профилировщик это все скажет и без меня. Улыбающийся

Принято)
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #16 : Ноябрь 18, 2013, 19:05 »

Почему не просто back() ?
Записан
fisenkdima
Гость
« Ответ #17 : Ноябрь 19, 2013, 03:18 »

Почему не просто back() ?
Потому что потом я делаю перебор элементов контейнера. И их может быть больше, чем один.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #18 : Ноябрь 19, 2013, 09:50 »

Потому что потом я делаю перебор элементов контейнера. И их может быть больше, чем один.
Если Вы хотели перебирать в обратном порядке - есть штатный rbegin()
Записан
fisenkdima
Гость
« Ответ #19 : Ноябрь 19, 2013, 09:51 »

Потому что потом я делаю перебор элементов контейнера. И их может быть больше, чем один.
Если Вы хотели перебирать в обратном порядке - есть штатный rbegin()

А вот об этом я не знал. Спасибо. Это как раз то, что нужно.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #20 : Ноябрь 19, 2013, 10:02 »

Глянул Ваши исходники - ну конечно сходу во все подробности не вник, так все аккуратно, но "сопля длинная", может лучше так
Код
C++ (Qt)
typedef std::shared_ptr<std::list<unsigned int> >  TSharedList;
И использовать TSharedList. А то читается тяжеловато
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #21 : Ноябрь 19, 2013, 10:09 »

может лучше так
Лучше начиная от pair и далее все нормально назвать. Улыбающийся

Код
C++ (Qt)
typedef std::shared_ptr<std::list<unsigned int> >  TSharedList;
Не стоит акцентировать внимание на shared, в программе практически все указатели будут shared (ну и некоторые weak), а то что это указатель выделить нужно:
Код
C++ (Qt)
typedef std::list<unsigned int> DataList
typedef std::shared_ptr<DataList>  DataListPtr;
typedef std::shared_ptr<DataList>  datalist_ptr;
 
« Последнее редактирование: Ноябрь 19, 2013, 10:32 от Old » Записан
fisenkdima
Гость
« Ответ #22 : Ноябрь 19, 2013, 12:39 »

Вариант Old-а, на мой взгляд, очень хорош. Сократить название типа + скрыть ненужные подробности. Круто.

Я как-то до сих пор не догадывался повышать читабельность кода таким образом. Приму на заметку.
Записан
Bepec
Гость
« Ответ #23 : Ноябрь 19, 2013, 13:36 »

Самое главное при таком подходе не уйти в крайность. Когда начнут появляться дефайны дефайнов дефайнов.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #24 : Ноябрь 19, 2013, 13:45 »

Самое главное при таком подходе не уйти в крайность. Когда начнут появляться дефайны дефайнов дефайнов.
Какие дефайны? Не надо дефайнов. Улыбающийся
А вот typedef'ов побольше.
« Последнее редактирование: Ноябрь 19, 2013, 13:54 от Old » Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #25 : Ноябрь 19, 2013, 13:55 »

Самое главное при таком подходе не уйти в крайность. Когда начнут появляться дефайны дефайнов дефайнов.
Может тайпдефы тайпдефов тайпдефов? Улыбающийся
Записан

Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #26 : Ноябрь 19, 2013, 14:06 »

А еще можно using в новом стандарте. Улыбающийся
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.099 секунд. Запросов: 22.