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

Разница в скорости выполнения, итераторы - C++

Восстановить пароль Регистрация
 
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
29.01.2014, 14:45     Разница в скорости выполнения, итераторы #1
Википедия
C++
1
2
3
for (ContainerType::iterator it = C.begin(),end = C.end(); it != end; ++it) {
    std::cout << *it << std::endl;
}
Вариант которой я сам использую и вижу практически у всех программистов
C++
1
2
3
for (ContainerType::iterator it = C.begin(); it != С.end(); ++it) {
    std::cout << *it << std::endl;
}
насколько первый вариант быстрее второго, стоит ли писать так, как предлагает википедия?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2014, 14:45     Разница в скорости выполнения, итераторы
Посмотрите здесь:

C++ Итераторы
Итераторы C++
Итераторы C++
Разница в скорости выполнение программы C++ или C# C++
C++ Итераторы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
29.01.2014, 15:09     Разница в скорости выполнения, итераторы #2
Цитата Сообщение от Van111 Посмотреть сообщение
насколько первый вариант быстрее второго, стоит ли писать так, как предлагает википедия?
беспонятия насколько это быстрее, но очевидно же что в 1ом случае лишний раз вызывается метод и оператор= ...
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
29.01.2014, 15:10     Разница в скорости выполнения, итераторы #3
Van111, разница не столь велика, чтобы изменять свой собственный стиль программирования.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
29.01.2014, 15:11     Разница в скорости выполнения, итераторы #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
На студии в дебаге разница ~2.5 раза (вики быстрее), в релизе разницы нет.
Ну и стоит учесть еще тело цикла. Т.к. нагрузка на ядра при вызове в условии if'а будет ничтожно мала по сравнению с вызовом тела цикла.
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
29.01.2014, 15:14     Разница в скорости выполнения, итераторы #5
Tulosba, думаю ТС спрашивал про разницу в релизе
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
29.01.2014, 15:15     Разница в скорости выполнения, итераторы #6
хотя я невнимателен и сказал глупость)
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
29.01.2014, 15:21     Разница в скорости выполнения, итераторы #7
dzrkot, все ошибаются
gazlan
2862 / 1810 / 272
Регистрация: 27.08.2010
Сообщений: 4,899
Записей в блоге: 1
29.01.2014, 15:22     Разница в скорости выполнения, итераторы #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Van111 Посмотреть сообщение
it != С.end();
Bad style detected !

Большой грех без нужды пихать вызов функции или вычисления в тело цикла. Другое дело, что оптимизирующий компилятор постарается вынести инвариантные выражения наружу.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2014, 19:59     Разница в скорости выполнения, итераторы
Еще ссылки по теме:

итераторы си++ C++
итераторы C++

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

Или воспользуйтесь поиском по форуму:
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
29.01.2014, 19:59  [ТС]     Разница в скорости выполнения, итераторы #9
всем большое спасибо
Yandex
Объявления
29.01.2014, 19:59     Разница в скорости выполнения, итераторы
Ответ Создать тему
Опции темы

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